给定两个对象,“ extend”将属性从第二个对象添加到第一个对象。
笔记:
完全不要修改第二个对象。
var obj1 = {
a: 1,
b: 2
};
var obj2 = {
b: 4,
c: 3
};
extend(obj1, obj2);
console.log(obj1); // --> {a: 1, b: 2, c: 3}
我能够做到这一点:
function extend(obj1, obj2) {
for (var key in obj2) {
obj1[key] = obj2[key];
}
return obj1;
}
哪个记录:
{a: 1, b: 4, c: 3}
在过去的两天左右的时间里,我一直在努力寻找解决办法。尝试谷歌搜索和一切。提前致谢 :)
基本上,您只需要遍历第二个对象上的每个键,并查看第一个对象是否具有该键。
如您所知,可以使用for..in
循环来完成迭代。您缺少的部分是如何检查对象是否已经具有给定的属性。那hasOwnProperty
是为了什么
function extend(obj1, obj2) {
// Iterate over every (enumerable) key in obj2
for (var key in obj2) {
// If obj1 does not have a key by this name,
// add it to obj1
if (!obj1.hasOwnProperty(key)) {
obj1[key] = obj2[key];
}
}
}
var obj1 = {
a: 1,
b: 2
};
var obj2 = {
b: 4,
c: 3
};
extend(obj1, obj2);
console.log(obj1); // --> {a: 1, b: 2, c: 3}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句