多维数组扁平化一维数组
1.Array.prototype.flat()
flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
const arr = [0, 1, 2, [[[3, 4]]]]; console.log(arr.flat(2)); // [0, 1, 2, [3, 4]] //使用 Infinity,可展开任意深度的嵌套数组 console.log(arr.flat(Infinity)) // [0,1,2,3,4] String.prototype.toString
2.String.prototype.toString() + String.prototype.split()
这个方法主要先使用String.prototype.toString方法将数组转化为字符串,然后再使用split方法进行分割成子字符串数组
const arr = [0, 1, 2, [[[3, 4]]]]; var str = arr.toString(); // '0,1,2,3,4' console.log(str.split(',')); // ["0", "1", "2", "3", "4"] // 简化arr.toString().split(',')
3.String.prototype.join() + String.prototype.split()
join()
类似toString方法也是将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。
const arr = [0, 1, 2, [[[3, 4]]]]; var str = arr.join(); // '0,1,2,3,4' console.log(str.split(',')); // ["0", "1", "2", "3", "4"] // 简化arr.join().split(',')