// 扁平化简单的二维数组const arr = [11, [22, 33], [44, 55], 66];const flatArr = arr.join().split(','); // ["11", "22", "33", "44", "55", "66"]
主要使用的join方法:
//如果数组中的元素是数组,会将里面的数组也调用join()let num = [[1,2],3];let str1 = num.join('-'); // 1,2-3
方法2:
// 扁平化简单的二维数组const arr = [11, [22, 33], [44, 55], 66];const flatArr = arr.toString().split(','); // ["11", "22", "33", "44", "55", "66"]
知识点:
[1,[2,'c']].toString(); //1,2,c// 以上与不使用任何参数调用join()方法返回的字符串是一样的。
方法3:
flat()
默认只会“拉平”一层,如果想要“拉平”多层的嵌套数组,可以将flat()
方法的参数写成一个整数,表示想要拉平的层数,默认为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]
方法四:
function flatten(arr){ var res = []; for(var i=0;i