js多維數組降維的5種方法

多維數組降維也就是數組扁平化

數組扁平化的方法有很多種,但是我主要用五種,如下:

一,遞歸

        // 一,遞歸
        let arr = [1, [2, 3, 4, 5], [6, 7, 8, 9, [10, 11, 12, [14, 15, 16]]]] 
        let newArr = []
        const getArr=(array)=>{
            array.forEach((item)=>{
                // 如果遍歷的元素不是一個數組 就把這個元素放到新數組中 
                // 反之 就進行遞歸再次調用方法
                Array.isArray(item) ? getArr(item) : newArr.push(item)
            })
        }
        getArr(arr)
        console.log(newArr)

二,將多維數組轉為字符串,再轉化為一維數組

let arr = [1, [2, 3, 4, 5], [6, 7, 8, 9, [10, 11, 12, [14, 15, 16]]]] 
console.log(arr.join(',').split(','))

三,利用數組的方法

(使用 Infinity 作為深度,展開任意深度的嵌套數組)

Array.prototype.flat()
let arr = [1, [2, 3, 4, 5], [6, 7, 8, 9, [10, 11, 12, [14, 15, 16]]]]
console.log(arr.flat(Infinity))

四、利用contact

     var a = [1,[2],[3,4]]
     var result = []
     for(var i=0; i<a.length; i++){
        if(a[i].constructor == Array) {
            result = result.concat(a[i])
        }else {
            result.push(a[i])
        }
      }
      console.log(result)

 五、利用擴展運算符

 擴展運算符相當於數組拆成最小單位瞭,

 …[1,2,[3, 4]] 相當於變成瞭 1,2,  [3, 4]///[ ].concat(…a) 就相當於 [ ].concat(1,2,[3,4])

    var a = [1,[2],[3,4]]
    var result = []
    result = [].concat(...a)
    console.log(result)

到此這篇關於js多維數組降維的5種方法的文章就介紹到這瞭,更多相關js多維數組降維內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: