日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

【ES10(2019)】Array扩展 flat / flatMap

發(fā)布時(shí)間:2025/3/15 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【ES10(2019)】Array扩展 flat / flatMap 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Array.prototype.flat()

flat()方法會(huì)按照一個(gè)可指定的深度遞歸遍歷數(shù)組,并將所有元素與遍歷到的子數(shù)組中的元素合并為一個(gè)新數(shù)組返回。

const arr1 = [0, 1, 2, [3, 4]]; console.log(arr1.flat()); // [0, 1, 2, 3, 4]const arr2 = [0, 1, 2, [[[3, 4]]]]; console.log(arr2.flat(2)); // [0, 1, 2, [3, 4]]

語(yǔ)法:var newArray = arr.flat([depth])

  • depth 可選參數(shù),默認(rèn)是1,如果想全部扁平可以傳Infinity
var arr1 = [1, 2, [3, 4]]; arr1.flat(); // [1, 2, 3, 4]var arr2 = [1, 2, [3, 4, [5, 6]]]; arr2.flat(); // [1, 2, 3, 4, [5, 6]]var arr3 = [1, 2, [3, 4, [5, 6]]]; arr3.flat(2); // [1, 2, 3, 4, 5, 6]//使用 Infinity,可展開(kāi)任意深度的嵌套數(shù)組 var arr4 = [1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]]; arr4.flat(Infinity); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

flat()方法會(huì)移除數(shù)組中的空項(xiàng):

var arr4 = [1, 2, , 4, 5]; console.log(arr4.flat()); // [1, 2, 4, 5]

Array.prototype.flatMap()

flatMap() 方法首先使用映射函數(shù)映射每個(gè)元素,然后將結(jié)果壓縮成一個(gè)新數(shù)組。它與 map 連著深度值為1的flat幾乎相同,但flatMap通常在合并成一種方法的效率稍微高一些。

語(yǔ)法:

var new_array = arr.flatMap(function callback(currentValue[, index[, array]]) {// return element for new_array }[, thisArg])
  • currentValue 當(dāng)前正在數(shù)組中處理的元素
  • index 可選的。數(shù)組中正在處理的當(dāng)前元素的索引。
  • array 可選的。被調(diào)用的 map 數(shù)組
  • thisArg 可選的。執(zhí)行 callback 函數(shù)時(shí) 使用的this 值。
var arr1 = [1, 2, 3, 4];arr1.map(x => [x * 2]); // [[2], [4], [6], [8]]arr1.flatMap(x => [x * 2]); // [2, 4, 6, 8]// only one level is flattened arr1.flatMap(x => [[x * 2]]); // [[2], [4], [6], [8]]

場(chǎng)景:將幾句話的數(shù)組拆分成單詞數(shù)組

let arr1 = ["it's Sunny in", "", "California"];arr1.map(x => x.split(" ")); // [["it's","Sunny","in"],[""],["California"]]arr1.flatMap(x => x.split(" ")); // ["it's","Sunny","in", "", "California"] 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的【ES10(2019)】Array扩展 flat / flatMap的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。