數組的拼接
var a = [1,2,3,4,5,6];
var b=["foo","bar", "fun"];
最終的結果是:
[
1,2,3,4,5,6,"foo","bar","fun"
]
一般情況下,我們最先想到的是concat
c=a.concat(b);
c是新數組,此時內存使用有,c,a,b三個數組。
對於大數組呢
第二種寫法:
//b "onto" a
for(var i=0;i<b.length;i++){
a.push(b.[i]);
}
b=null;
很顯然沒有新的數組創建,對於內存來說 更優。
注意到結尾的b=null;拼接完成后將數組b清空
不喜歡for循環可以使用第三種:
//b "onto" a
a = b.reduce(function(coll,item){
coll.push(item);
},a);
更一步優化
a.push.apply(a,b);
es6的寫法
a.push(...b);
數組嵌套處理
var array = [1,2,3,[4,5,[6,7,[9]]]];
將上述轉換成下面的形式
array = [1,2,3,4,5,6,7,9]
array = array.join(",").split(",")