多维数组扁平化一维数组

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(',')

 

posted on 2021-07-28 23:06  smallpen  阅读(103)  评论(0编辑  收藏  举报