把嵌套数组拉平,该方法返回一个新数组,对原数据没有影响。
[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] ]