1. Array.flat方法
描述:flat()方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。不会改变原数组。
语法:arr.flat(depth) // depth 默认值为1。
参数:depth:可选。提取嵌套数组的结构深度,默认值为1。
注意:arr.flat()返回一个包含数组和其子数组所有元素的新数组。
depth可以是任意值,但一般只有number和string 类型的数值才会被接受,undefined则为默认值。
2. Array.flat应用
注:输出的Array(3) = ['a', ['b'], 'c'],Array(1) = ['b']
const arr = [1, 2, ['a', ['b'], 'c']];
console.log(arr.flat()); // 输出 [1, 2, 'a', Array(1), 'c'] ———— depth 默认值为1
console.log(arr); // 输出 [1, 2, Array(3)] ———— 不会改变原数组
const arr = [1, 2, ['a', ['b'], 'c']];
console.log(arr.flat('abc')); // 输出 [1, 2, Array(3)]
console.log(arr.flat('2')); // 输出 [1, 2, 'a', 'b', 'c']
console.log(arr.flat(undefined)); // 输出 [1, 2, 'a', Array(1), 'c']
// 引用自MDN ———— 使用 Infinity,可展开任意深度的嵌套数组
const arr = [1, 2, ['a', ['b'], 'c']];
console.log(arr.flat(Infinity)); // 输出 [1, 2, 'a', 'b', 'c']