我正在构建一个JavaScript函数,它将源对象的可枚举属性分配给目标对象。但是,后续来源会覆盖以前来源的属性分配。JavaScript - 将源对象的属性扩展为目标对象使用
例子,如果称为例如:
extend({ 'user': 'barney' }, { 'age': 40 }, { 'user': 'fred' });
应该返回 - >{ 'user': 'fred', 'age': 40 }
奖金:使用减少
这是一个编程训练营,我的运动/挑战为了找到解决办法,我一直在研究无尽的。我的问题在于测试对象不包含在数组中,所以我不能使用reduce来操纵它们。我已经尝试过多种改变测试对象的方法,比如Array.prototype.slice.call(arguments)。
还在学习,所以如果有任何疏漏或考虑,请让我知道。我一直在这里一段时间,所以我很有信心,可能会有一些简单的心理错误
我目前无法通过与我有的代码提供的所有测试。
示例代码:
function extend(destination) {
var args = Array.prototype.slice.call(arguments);
var result = args.reduce(function (newObj, currentObj) {
for (var key in currentObj) {
if (currentObj.hasOwnProperty(key)) {
newObj[key] = currentObj[key];
}
}
return newObj;
}, {});
return result;
}
顺便说一下,你的代码工作... –
呃,'常量extend = Object.assign;'? – Bergi