我面临下一个问题,我可以合并/扩展对象并且工作得很好,但现在我需要做与扩展对象相反的事情,JQuery 文档:
var object1 = {
apple: 0,
banana: { weight: 52, price: 100 },
cherry: 97
};
var object2 = {
banana: { price: 200 },
durian: 100
};
// Merge object2 into object1, recursively
$.extend( true, object1, object2 );
// Result
{"apple":0,"banana":{"weight":52,"price":200},"cherry":97,"durian":100}
这很酷,而且效果很好,但是我如何获得相反的操作,例如获得这样的输出:
{"apple":0,"banana":{"weight":52},"cherry":97}
最佳答案
没有这样的函数,但是你可以自己写:
$.prototype.reduce = function reduce(obj1, obj2) {
for (var k in obj2) {
if (obj1.hasOwnProperty(k) && obj2.hasOwnProperty(k)) {
if (typeof obj1[k] == "object" && typeof obj2[k] == "object") {
reduce(obj1[k], obj2[k]);
}
else delete obj1[k];
}
}
}
关于javascript - JQuery 与 extend (reduce objects) 相反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27444417/