js数组扁平化方法(5种)

2020-04-29  本文已影响0人  姜酱i

let arr = [1,2,3,[4,5,6,[7,8,9,1]]]
1.es6

  arr.flat(Infinity)

2.数组转成字符串再转数组

  let newArr =  arr.toString().split(',');

3.正则替换

  arr = JSON.stringify(arr).replace(/(\[|\])/g,'').split(',')

4.用while判断数组中是否包含数组

  while(arr.some(item=>return Array.isArray(item))){ 
    arr = [].concat(...arr)
  }

5.循环判断数组里面是否包含数组再做递归:

  function myFlat(){
                let arr = this;
                let result = []
                fn = (arr)=>{
                    for(let i = 0 ; i<arr.length ;i++){
                        if(Array.isArray(arr[i])){
                            fn(arr[i])
                        }else{
                            result.push(arr[i])
                        }
                    }
                    return result;
                }
                return fn(arr);
            }
    Array.prototype.myFlat = myFlat
    let newarr = arr.myFlat();
上一篇 下一篇

猜你喜欢

热点阅读