对象的合并
ES6 Object.assign()是可以合并对象
浅拷贝的方法
当合并的对象有相同的属性就会以最后一个为准
或者是
function combine(target, source){
for(var obj in source){
target[obj] = source[obj];
}
return target;
}
数组的合并
假设现在有两个数组
var a = [1,2,3];
var b = [4,5,6];
1、concat()
数组对象的concat()方法,连接两个或更多的数组,并返回结果。
var c = a.concat(b); //c=[1,2,3,4,5,6];
缺点:该方法会返回一个新的数组,需要进行多次的数组合并时,会造成很大的内存浪费。适合小量数组的合并
2、for循环
大概的思路是:遍历其中一个数组,把该数组中的所有元素依次添加到另外一个数组中
for( var i in b)
{
a.push(b[i]);
}
3、apply
函数的apply方法有一个特性,那就是func.apply(obj,argv),argv是一个数组。所以我们可以利用这点,直上代码:
a.push.apply(a,b);
调用a.push这个函数实例的apply方法,同时把,b当作参数传入,这样a.push这个方法就会遍历b数组的所有元素,达到合并的效果。
这里可能有点绕,我们可以把b看成[4,5,6],变成这样:
a.push.apply(a,[4,5,6]);
//等同于
a.push(4,5,6);
按照上面的思路,若果是
a.push(…b) 也是一样? 是的