注意:瀏覽器相容問題
陣列的成員有時還是陣列,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]
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()只能展開一層陣列。 ES6之陣列操作
es6中對於陣列操作新增了4種方法 1.map 對映 乙個對應乙個 2.reduce 彙總 多個出來乙個 3.filter 過濾 4.foreach 迭代 迴圈。直接上 理解的更快 返回結果 上面的 表示 arr 裡面的元素,每個都乘以2,即每個元素都執行該方法。這個理解起來可能比map要略微複雜一...
ES6之陣列的擴充套件
es6在陣列方面增加了一些方法和原型屬性,有些還是蠻有用的。擴充套件運算子 把陣列或者類陣列轉成用逗號隔開的引數 把類陣列轉成陣列,有限制 類陣列就是有長度的變數 var str wade console.log str w a d e 把陣列轉成用逗號隔開的引數序列 var arr 1,2,3 c...
es6之陣列的flat ,flatMap
陣列的成員有時還是陣列,array.prototype.flat 用於將巢狀的陣列 拉平 變成一維陣列。該方法返回乙個新陣列,對原資料沒有影響。1,2,3,4 flat 1,2,3,4 12 上面 中,原陣列的成員裡面有乙個陣列,flat 方法將子陣列的成員取出來,新增在原來的位置。flat 預設只...