jQuery美元.扩展导致第一个对象完全被第二个对象替换
jQuery $.extend results in first object completely replaced by second
除了纯代码之外,我找不到一个方法来演示这一点,但下面是正在发生的事情:我使用AJAX获取JSON文件。我将数据保存到一个变量中。一旦完成,我将对另一个JSON文件进行另一个get,目的是合并两个数据集。
$.get('1.json', function (foo) {
var res1 = foo;
$.get('2.json', function (bar) {
var res2 = bar;
$.extend(res1, res2);
});
});
无论我做什么,res1都会输出res2的数据集。我试过使用
var baz = $.extend({}, res1, res2);
默认情况下,.extend
只会进行浅拷贝。例如:
var obj1 = {
a : {
banana: true
}
}
var obj2 = {
a : {
monkey: true
}
}
var obj3 = $.extend({}, obj1, obj2);
/*
obj3 = {
a : {
monkey: true
}
}
*/
为了进行深度复制(并保留您的香蕉),您可以使用.extend
的第二个签名并传递true
作为第一个参数:
var obj3 = $.extend(true, {}, obj1, obj2);
相关文章:
- 设置选项对象关键点:值对以实现带第二个y轴的动态打印
- 使用第二个原型扩展对象
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 两个具有相同值的对象,计算和更改一个对象的值.第二个也具有新的价值
- JS深度比较2个对象并删除在第二个对象中找到的项目,而不是第一个
- 为什么第二个对象的值没有改变
- 如何使用结构 JS 删除画布中的第二个对象
- 无法返回 JSON 数组对象的倒数第二个元素的值
- 如何将jquery对象转移到“On”方法(第二个参数)
- Javascript-动态对象键(第二个键)
- 对象和数组:参照第二个对象更改对象属性(chart.js示例)
- 从一个对象悬停到另一个对象,而第二个DOM对象不会立即消失
- 在同一对象上添加第二个动画将删除css属性
- 循环遍历对象并在第二个对象javascript中设置为值
- 查询:如何将我的JSON对象从第一个脚本传递到第二个脚本
- 如何在Mootools fireEvent函数的第二个参数中访问对象实例
- jQuery美元.扩展导致第一个对象完全被第二个对象替换
- 使用第一个对象的值在第二个对象中查找相应的值
- Angularjs-根据搜索值过滤对象,但不要'如果搜索值在第二个对象中,则t省略
- 级联对象声明从第二个对象开始提供未定义的类型