在 JavaScript/jQuery 中覆盖/合并两个对象
Overwrite/Merge two objects in JavaScript/jQuery
我希望我的用户输入覆盖默认值,但如果数据不存在,则让默认值填充空白。这样:
var userInput={
name:"Pat",
color: "green"
}
var defaults={
name:"Trevor",
color: "blue",
state: "washington"
}
var finalObject=mergeObjects(userInput,defaults);
//Should produce:
{
name:"Pat",
color: "green",
state: "washington"
}
这种合并/覆盖可以用jQuery吗?我确实看到了这个问题,但它适用于数组并且不会像我需要的那样覆盖。
有什么想法吗?
jQuery的$.extend()
方法就可以了:
var finalObject = $.extend({}, defaults, userInput);
请注意,$.extend()
修改作为第一个参数传递的对象(并返回它),因此您可能希望传递一个空对象,以便defaults
和userInput
不会更改。您可以传递任意数量的对象,它们将按照提供的顺序合并到第一个对象中(因此defaults
在userInput
之前获得所需的结果)。
您需要jQuery.extend
,它明确用于合并两个或多个对象(参数的顺序与假设的mergeObjects
方法相反):
var finalObject = $.extend(defaults, userInput);
finalObject // Object {name: "Pat", color: "green", state: "washington"}
相关文章:
- 正在更新mongod中两个对象内部的数组
- 添加两个对象以获取值的总和
- 如何使用javascript合并两个对象数组
- 在JavaScript中相等两个对象.在更改一时,秒会自动更改
- 如何使用AngularJs比较两个对象的JSON
- 如何在javascript中合并两个对象数组
- JavaScript - 合并两个对象数组并根据属性值删除重复数据
- Javascript如何确定两个对象是否相同
- 比较两个对象数组
- Javascript tests - 如何比较 Jasmine 中的两个对象
- JavaScript:为什么 array.push() 附加两个对象而不是一个对象
- 两个对象相等,但 js 确实说假
- 两个对象之间的Javascript原型
- 使用angularjs或javascript的两个对象数组的交集
- 合并两个对象而不覆盖
- 如何获取具有相同值的两个对象,并将其视为一个对象
- 比较两个对象数组中的重复对象,并在其'这在JavaScript中不是重复的
- 比较underscorejs中的两个对象数组
- 查找/合并具有共同属性的两个对象
- 有没有一个lodash函数可以合并两个对象并删除其中一个对象的属性(如果它们没有)'不存在于另一个中