1.flat() 預設拉平一層;引數整數代表拉平的次數;引數infinity代表最終被拉平為一維資料
陣列的成員有時還是陣列,array.prototype.flat()用於將巢狀的陣列「拉平」,變成一維陣列。該方法返回乙個新陣列,對原資料沒有影響。
[1, 2, [3, 4]].flat()
// [1, 2, 3, 4]
上面**中,原陣列的成員裡面有乙個陣列,flat()方法將子陣列的成員取出來,新增在原來的位置。
flat()預設只會「拉平」一層,如果想要「拉平」多層的巢狀陣列,可以將flat()方法的引數寫成乙個整數,表示想要拉平的層數,預設為1。
[1, 2, [3, [4, 5]]].flat()
// [1, 2, 3, [4, 5]]
[1, 2, [3, [4, 5]]].flat(2)
// [1, 2, 3, 4, 5]
上面**中,flat()的引數為2,表示要拉平兩層的巢狀陣列。
如果不管有多少層巢狀,都要轉成一維陣列,可以用infinity關鍵字作為引數。
[1, [2, [3]]].flat(infinity)
// [1, 2, 3]
如果原陣列有空位,flat()方法會跳過空位。
[1, 2, , 4, 5].flat()
// [1, 2, 4, 5]
2. flatmap() 相當於執行map+flat()遍歷返回再拉平flatmap()方法對原陣列的每個成員執行乙個函式,相當於執行array.prototype.map(),然後對返回值組成的陣列執行flat()方法。該方法返回乙個新陣列,不改變原陣列。
// 相當於 [[2, 4], [3, 6], [4, 8]].flat()
[2, 3, 4].flatmap((x) => [x, x * 2])
// [2, 4, 3, 6, 4, 8]
flatmap()只能展開一層陣列。
3.?? 這個和 || 很像,但是它不會遮蔽掉 false和 0
js原生 ES6陣列去重
方法一 給陣列原型新增unique方法,那麼陣列就可以在任何地方像用push的方法一樣,直接使用。繫結unique去重方法到array原型上 array.prototype.unique function newarr for let item of this return newarr 使用陣列去...
es6刪除陣列某項 ES6陣列中刪除指定元素
知識點 es6從陣列中刪除指定元素 findindex 方法返回陣列中滿足提供的測試函式的第乙個元素的索引。否則返回 1。arr.splice arr.findindex item item.id data.id 1 1 js中的splice方法 splice index,len,item 注釋 該...
es6陣列中的遍歷
我經常會運算元組,而且避免不了對每乙個欄位的操作,這樣就會用到遍歷,遍歷有好多種,今天我歸納一下經常會用到的幾個 1 foreach是乙個我們經常用的乙個 var name 張三 李四 王五 name.foreach function v,k 注意 jquery中each方法是反的,比如 name ...