gpt4 book ai didi

javascript - 合并两个对象而不添加新属性

转载 作者:行者123 更新时间:2023-11-29 16:13:23 26 4
gpt4 key购买 nike

我有两个 JSON 对象,我想以这样一种方式合并,即只更新第一个对象中已存在的属性值。

我想用第二个扩展第一个对象

var obj1 = {a:'apple', b:'banana', c:'cucumber'};
var obj2 = {a:'aarbei', b:'beet', d:'durian'};

得到这个结果

{a:'aarbei', b:'beet', c:'cucumber'};

而不是(我使用 $.extend)

{a:'aarbei', b:'beet', c:'cucumber', d:'durian'};

实际上,我的 JSON 对象可以更大并且包含未知复杂度的嵌套对象/数组

最佳答案

简单的 for 循环怎么样:

for (var key in obj2) {
if (key in obj1) {
obj1[key] = obj2[key];
}
}

对于嵌套对象,您可以将此代码包装到递归函数中:

function mergeObj(a, b) {
for (var key in b) {
if (key in a) {
a[key] = typeof a[key] === 'object' && typeof b[key] === 'object' ? mergeObj(a[key], b[key]) : b[key];
}
}
return a;
}

演示:http://jsfiddle.net/rHUM6/

关于javascript - 合并两个对象而不添加新属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21726008/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com