js 数组的拼接
数组的拼接
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(",")