es6中 数组的flat() 与 flatMap() ,map() 使用方法

 把嵌套数组拉平,该方法返回一个新数组,对原数据没有影响。

[1, 2, [3, 4]].flat()
// [1, 2, 3, 4]

flat(num) 需要拉平几层 数组,按顺序排列, 默认 是 1

[1, 2, [3, [4, 5]]].flat()
// [1, 2, 3, [4, 5]]
[1, 2, [3, [4, 5]]].flat(2)
// [1, 2, 3, 4, 5]

 如果 嵌套多层 无法计算 (Infinity) 关键字 拉平所有数组  (数组中 有空位会跳过)

[1, [2, [3]]].flat(Infinity)
// [1, 2, 3]

 flatMap 方法对原数组的每个成员执行一个函数 该方法返回一个新数组 并且拉平数组, 但只能展开一层

[2, 3, 4].flatMap((x) => [x, x + 2])
// [2, 4, 3, 5, 4, 6]

 map 方法对原数组的每个成员执行一个函数 改函数返回一个新数组 不做展开操作 (也可以返回 成员本身, 相当于什么都没做)

[2, 3, 4].map(x => [x])
// [ [2], [3], [4] ]

 

发布了50 篇原创文章 · 获赞 13 · 访问量 4万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章