成长(12/2000)——面试题合集9

2021-06-16  本文已影响0人  Kiki_Q

扁平化数组

实现方式

1.es6方法:flat
arr.flat(Infinity);

2.正则
JSON.stringify(arr).replace(/[|]/g,'').split(',');
缺点:数据类型都会变为字符串
改良版:
JSON.parse('[' + JSON.stringify(arr).replace(/[|]/g,'') + ']')

3.递归

let arr = [1,[2,[3]]]
const result = [];
const fn = arr => {
    for (let index = 0; index < arr.length; index++) {
        if(Array.isArray(arr[index])){
            fn(arr[index]);
        }else{
            result.push(arr[index])
        }
        
    }
}
fn(arr);

4.reduce

let arr = [1,[2,[3]]]
let flatten = arr => {
   return arr.reduce( (pre, cur)=>{
    console.log('1',pre, cur)
       return pre.concat(Array.isArray(cur)?flatten(cur):cur);
   },[])
}

const res = flatten(arr);
上一篇 下一篇

猜你喜欢

热点阅读