1. 程式人生 > >多維數組降維的幾種方法

多維數組降維的幾種方法

prot ray result ++ i++ proto 循環 var 傳遞

這裏只說二維數組降低到一維數組的方法,關於三維數組,先用下面這些方法降低到二維,再降低到一維即可

1.常規循環遍歷方法

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

2利用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]

3.利用擴展運算符

擴展運算符相當於數組拆成最小單位了,...[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) // [1,2,3,4]

4.利用apply

這個跟擴展運算符類似,apply 會把數組a 拆分,拆成 1,2,[3, 4] 依次傳遞給concat方法, 效果就跟 擴展運算符一樣了。

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

多維數組降維的幾種方法