美文网首页
js数组扁平化方法(5种)

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

作者: 姜酱i | 来源:发表于2020-04-29 11:27 被阅读0次

    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();
    

    相关文章

      网友评论

          本文标题:js数组扁平化方法(5种)

          本文链接:https://www.haomeiwen.com/subject/uucgwhtx.html