对象1:
var obj1 = {
location : 'lol',
radius : '22'
}
对象2:
var obj2 = {
location : 'omg',
spice : 'gravey',
radius : '8'
}
我需要一个递归函数来更新obj1
中obj2
匹配的属性值:
obj1 = update(obj1,obj2);
//console.log(obj1);
//{
// location : 'omg',
// radius : '8'
//}
仅限原生JavaScript。
答案 0 :(得分:1)
这很简单。只需循环遍历第一个对象,并使用第二个对象中的值(如果存在)。
function update(obj1, obj2){
var ret = {};
for(var prop in obj1){
ret[prop] = obj2[prop] || obj1[prop];
}
return ret;
}
答案 1 :(得分:1)
怎么样
function update(o1, o2){
var temp = {};
for(var key in o1){
if (o1.hasOwnProperty(key)){
temp[key] = o1[key];
if (o2.hasOwnProperty(key)){
temp[key] = o2[key];
}
}
}
return temp;
}