(1)join 方法
let colors = ['red', ['green', 'lightgreen', ['yellow']], 'blue']
console.log(colors.join().split(','))
//[ "red", "green", "lightgreen", "yellow", "blue" ]
(2)toString方法
let colors = ['red', ['green', 'lightgreen', ['yellow']], 'blue']
console.log(colors.toString().split(','))
//[ "red", "green", "lightgreen", "yellow", "blue" ]
(3)flat方法
flat()默认只会“拉平”一层,如果想要“拉平”多层的嵌套数组,可以将flat()方法的参数写成一个整数,表示想要拉平的层数,默认为1。
如果不管有多少层嵌套,都要转成一维数组,可以用Infinity关键字作为参数。
let colors = ['red', ['green', 'lightgreen', ['yellow']], 'blue']
console.log(colors.flat(2))
console.log(colors.flat(Infinity))
(4)for 循环
let colors = ['red', ['green', 'lightgreen', ['yellow']], 'blue']
function flatten(arr){
var res = [];
for(var i=0;i<arr.length;i++){
if(Array.isArray(arr[i])){
res = res.concat(flatten(arr[i]));
}else{
res.push(arr[i]);
}
}
return res;
}
console.log(flatten(colors))