es6陣列拉平和js中??

2021-10-24 07:59:33 字數 1305 閱讀 1513

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 ...