JS任意层级数组转换为一维数组
先想办法转换为字符串,如toString方法,或者+"",然后用字符串的split方法转为一维数组
或者采用forEach加上递归:
const arr = [1, [2, [3, 4]],3,[22,1,[11,1]]];
const flatten = function(arr) {
let result = [];
arr.forEach(function(item, i, arr){
if (Array.isArray(item)) {
result=result.concat(flatten(item)) ;
} else {
result.push(arr[i])
}
})
return result;
};
alert(flatten(arr))
最后还可以用ES6的flat(Infinity),不过有些版本的浏览器不支持。