gpt4 book ai didi

javascript - 如何合并复杂的JS对象

转载 作者:行者123 更新时间:2023-11-29 10:41:14 43 4
gpt4 key购买 nike

如何像这样合并两个(或更多)JS 对象?

结果应包含所有函数(如 showUser 和 showOtherData),事件和请求数组也应合并。

var object1 = {
events: {
'app.activated': 'showUser'
},
requests: {
},
showUser: function() {
console.log("es jhsod")
},
};

var object2 = {
events: {
'app.destroyed': 'hideUser'
},

requests: {
main: {
url: 'http://example/api/main',
data: {
format: 'json'
}
}
},

showOtherData: function() {
console.log("foobar")
},
};

最佳答案

我知道已经有一些实现,但是编写递归函数非常有趣。为您的问题再检查一个 extend 函数。它还支持无限数量的参数:

function extend() {

var result = {}, obj;

for (var i = 0; i < arguments.length; i++) {
obj = arguments[i];
for (var key in obj) {
if (Object.prototype.toString.call(obj[key]) === '[object Object]') {
if (typeof result[key] === 'undefined') {
result[key] = {};
}
result[key] = extend(result[key], obj[key]);
}
else {
result[key] = obj[key];
}
}
}
return result;
}

console.log(extend(object1, object2, object3));

演示: http://jsfiddle.net/zgbwtp4g/ , http://jsfiddle.net/zgbwtp4g/1

关于javascript - 如何合并复杂的JS对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28741359/

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