js数组扁平化
什么是数组扁平化
1.扁平化,顾名思义就是减少复杂性装饰,使其事物本身更简洁,简单,突出主题。
2.数组扁平化,就是将一个复杂的嵌套多层的数组,一层一层的转化为层级较少或者只有一层的数组
var arr = [1, [2, 3, [4, 5, [6]]]]
function flatten(arr){
return arr.toString().split(',').map((item) =>{
return +item
} )
}
arr.toString().split(',') 结果是 ["1", "2", "3", "4", "5", "6"] map在返回一个处理过的新数组
console.log(flatten(arr)) [1,2,3,4,5,6]
es6方案 some
function flatten(arr) {
while (arr.some(item => Array.isArray(item))) {
arr = [].concat(...arr);
}
return arr;
}
const arr = [1, [2, [3, 4]]];
console.log(flatten(arr));
递归方法
/* ES6 */
const flatten = (arr) => {
let result = [];
arr.forEach((item, i, arr) => {
if (Array.isArray(item)) {
result = result.concat(flatten(item));
} else {
result.push(arr[i])
}
})
return result;
};
const arr = [1, [2, [3, 4]]];
console.log(flatten(arr));

浙公网安备 33010602011771号