多維數組降維的幾種方法
阿新 • • 發佈:2019-03-28
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]
多維數組降維的幾種方法