JS数组合并
##JS数组合并
方法知识点
####concat
var arrA=[1,2,3],
arrB=[a,b,c],
arrC;
arrC=arrA.concat(arrB);//Concat 合并生成新数组
//[1,2,3,a,b,c]
concat合并数组最常见 简单 易掌握 合并生成新数组
####push/unshift
var arrA=[1,2,3],
arrB=["a","b","c"];
for(var i=0;i<arrB.length;i++){
arrA.push(arrB[i]);
}
//arrA [1,2,3,"a","b","c"] push
//arrA ["c","b","a",1,2,3] unshift
//arrA ["a","b","c",1,2,3] unshift for(var i=arrB.length-1,i>=0,i--)
不生成新数组 但需要写for循环
####reduce+(push/unshift)
//reduce代替for循环
arrA=arrB.reduce(function(acc,val){
acc.push(val);
return acc;
},arrA);//[1,2,3,"a","b","c"]
//reduceRight() unshift();
**不生成新数组 不需要写for循环 数组方法reduce **
####apply+(push/unshift)
arrA.push.apply(arrA,arrB); //arrA.push("a","b","c");
arrA.unshift.apply(arrA,arrB); //arrA.unshift("a","b","c");
**不生成新数组 不需要写for循环 **
apply 改变push/unshift传参方法
使用apply主要作用是数组传参并没有改变作用域
在不改变原数组的情况下 考虑用concat
在原数组修改改变的情况下 使用后面方法
合并数组之前最好判断
数组大小 将小的向大的合并