使用JavaScript将对象值替换为相同键的其他对象的值

Luu*_*zak 4 javascript object

我有两个对象,item而且results.他们都有相同的键,但可能有不同的值,例如:

item.id = '50'
item.area = 'Mexico'
item.gender = null
item.birthdate = null

results.id = '50'
results.area = null
results.gender = 'Male' 
results.birthdate = null
Run Code Online (Sandbox Code Playgroud)

我想要做的是以下内容:

if (item.id == null || items.id == 0)
{
    item.id = results.id;
}
Run Code Online (Sandbox Code Playgroud)

但我正在寻找一种方法来为我的item对象的每个值做这个.你知道,如果我的对象碰巧有更多的键/值,就不必写一个巨大的函数.有任何想法吗?

更新:我误解了我自己的问题,唯一的问题是我并没有真正理解如何在给定某个键的情况下获取对象值.因为我使用Azure的移动服务脚本,所以我无法真正使用任何外部脚本或div.

for (var key in item) {
    if(item[key] == null || item[key] == 0){
        item[key] = results[0][key] 
    }             
}
Run Code Online (Sandbox Code Playgroud)

Ano*_*day 8

它可以做到这一点!

var item = {};
var results={};

item.id = '50'
item.area = 'Mexico'
item.gender = null
item.birthdate = null

results.id = '50'
results.area = null
results.gender = 'Male'
results.birthdate = null

Object.keys(item).forEach(function(key) {
  if (item[key] == null || item[key] == 0) {
    item[key] = results[key];
  }
})
document.getElementById('dbg').innerHTML ='<pre>' + JSON.stringify(item , null , ' ') + '</pre>';

console.dir(item);
Run Code Online (Sandbox Code Playgroud)
<div id='dbg'></div>
Run Code Online (Sandbox Code Playgroud)