我有两个具有不同用途的父对象。
对象 1 - 用于识别该键的 bool 值
对象 2 - 包含要使用的真实数据
我想做的:对两个对象的名称运行匹配,
if item3(object1)'s name === item3(object2)'s name
if item3(object1) === true
item3(object2)'s value ++
else return;
是否可以获取对象名称并运行比较?或者有更好的方法吗?
最佳答案
如果我正确理解您要查找的内容,您希望增加对象 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);
关于javascript - 如何将对象键名与lodash匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40844750/