覆盖/合并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是否可以进行这种合并/覆盖?我确实看到了,但它可以使用数组,并且不会像我需要的那样覆盖 有什么想法吗?您想要的,它明确用于合并两个或多个对象(参数的顺序与假设的覆盖/合并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" },javascript,jquery,Javascript,Jquery,jQuery是否可以进行这种合并/覆盖?我确实看到了,但它可以使用数组,并且不会像我需要的那样覆盖 有什么想法吗?您想要的,它明确用于合并两个或多个对象(参数的顺序与假设的mergeObjects方法相反): 您需要,它明确用于合并两个或多个对象(参数的顺序与假设的mergeObjects方法相反): jQuery可以做到这一点: var finalObject = $.extend({}, defaults, userInput); 请注意,$.extend()修改作为第一个参数传递的对象(
mergeObjects
方法相反):
您需要,它明确用于合并两个或多个对象(参数的顺序与假设的mergeObjects
方法相反):
jQuery可以做到这一点:
var finalObject = $.extend({}, defaults, userInput);
请注意,$.extend()
修改作为第一个参数传递的对象(并返回它),因此您可能希望传递一个空对象,以便您的默认值
和用户输入
。您可以传递任意多个对象,它们都将按照提供的顺序合并到第一个对象中(因此默认值
位于用户输入
之前,以获得所需的结果)。var finalObject = $.extend({}, defaults, userInput);
请注意,
$.extend()
修改作为第一个参数传递的对象(并返回它),因此您可能希望传递一个空对象,以便您的默认值
和用户输入
。您可以传递任意多个对象,它们都将按照提供的顺序合并到第一个对象中(因此defaults
在userInput
之前出现,以获得所需的结果)。了解您使用的工具:了解您使用的工具:在此示例中,值得明确注意的是,默认值
被修改。这可能是一个问题,如果你这样做了很多次-你的默认值将不一样,因为他们在开始。在这种情况下,这可能是您想要的。值得注意的是,在本例中,defaults
被修改。这可能是一个问题,如果你这样做了很多次-你的默认值将不一样,因为他们在开始。在这种情况下,这可能是你想要的。