我有两个用于不同用途的父对象。
对象1-用于标识该键的布尔值。
对象2-包含要使用的真实数据
我想做的是:对两个对象的名字进行匹配,
if item3(object1)'s name === item3(object2)'s name
if item3(object1) === true
item3(object2)'s value ++
else return;
可以获取对象名称并运行比较吗?还是有更好的方法?
发布于 2016-11-28 04:51:33
如果我正确地理解了您要寻找的内容,那么您希望在对象2子对象中的一个中增加值,如果它存在于对象1中,并且它是true
。
您可以使用Object.keys()
来获取一个键数组,然后使用Array.prototype.forEach()
迭代它。
Object.keys(Object2).forEach((key) => Object1[key] && (Object2[key] += 1));
const Object1 = { item2: false, item3: true, item5: true};
const Object2 = {
item1: {
name: 'PC',
value: 0
},
item2: {
name: 'Hackintosh',
value: 0
},
item3: {
name: 'MAC',
value: 15.3
},
item4: {
name: 'Linux',
value: 0
},
item5: {
name: 'Android',
value: 11.4
}
};
Object.keys(Object2).forEach((key) => Object1[key] && (Object2[key].value += 1));
console.log(Object2);
https://stackoverflow.com/questions/40844750
复制相似问题