合并数组问题:
var a0={};
var a1={a:[1,2,3,4]};
var a2={a:[6,7]};
$.extend(true,a0,a1,a2);
结果是:{a:[6,7,3,4]}
而我期望的结果是:{a:[6,7]}
希望将数组长度也覆盖掉。
虽然使用$.extend(false,a0,a1,a2);方式可以实现上面情况,但使用false的话,其他对象属性就不能合并了。
我的解决方案:对数组属性特殊处理,因为具体业务对象中只有一个属性是数组,所以暂时先简单这么处理了。
$.extend(true,a0,a1,a2);
if(a2.a){
a0.a = a2.a;
}
合并对象:
var a1={b:{c:1}};
var a2={b:{d:2}};
$.extend(a1,a2);
//结果a1值为{b:{d:2}}
$.extend(true,a1,a2);
//结果a1值为{b:{c:1,d:2}}