Javascript 是否通过匹配另一个对象的键值来更新一个对象的属性值?

Javascript 是否通过匹配另一个对象的键值来更新一个对象的属性值?,javascript,Javascript,对象1: var obj1 = { location : 'lol', radius : '22' } var obj2 = { location : 'omg', spice : 'gravey', radius : '8' } 对象2: var obj1 = { location : 'lol', radius : '22' } var obj2 = { location : 'omg', spice : 'gravey', radius : '

对象1:

var obj1 = {
  location : 'lol',
  radius : '22'
}
var obj2 = {
  location : 'omg',
  spice : 'gravey',
  radius : '8'
}
对象2:

var obj1 = {
  location : 'lol',
  radius : '22'
}
var obj2 = {
  location : 'omg',
  spice : 'gravey',
  radius : '8'
}
我需要一个递归函数从
obj2
更新在
obj1
中匹配的属性值:

obj1 = update(obj1,obj2);

//console.log(obj1);
//{
//  location : 'omg',
//  radius : '8'
//}

请只使用本机JavaScript

这很简单。只需在第一个对象中循环,并使用第二个对象中的值(如果存在)

function update(obj1, obj2){
    var ret = {};
    for(var prop in obj1){
        ret[prop] = obj2[prop] || obj1[prop];
    }
    return ret;
}
怎么样

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;
}

你试过什么了吗?@gabykag.Petrioli:是的,我刚刚很快就搞定了。我并没有真正添加任何验证:)这将设置Obj2中不存在的值Obj1@meouw你是什么意思?不会的<代码>用于(obj1中的var prop){