Javascript 是否通过匹配另一个对象的键值来更新一个对象的属性值?
对象1: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 : '
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){