多维数组降维的几种方法

这里只说二维数组降低到一维数组的方法,关于三维数组,先用下面这些方法降低到二维,再降低到一维即可

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]

猜你喜欢

转载自www.cnblogs.com/yalong/p/10615194.html