如何将对象键名称与lodash匹配?

时间:2016-11-28 12:48:29

标签: javascript reactjs ecmascript-6 lodash

我有两个用于不同目的的父对象。

enter image description here

对象1 - 用于标识该键的布尔值

对象2 - 包含要使用的实际数据

我正在尝试做的事情:对两个对象的名称进行匹配,

if item3(object1)'s name === item3(object2)'s name
    if item3(object1) === true
        item3(object2)'s value ++
    else return;

是否可以获取对象名称并运行比较?或者有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您要查找的内容,您希望增加其中一个对象2子对象中的值(如果它存在于对象1中),并且它是Object.keys()。< / p>

您可以使用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);

&#13;
&#13;
 Dim NewItem As New ListViewItem
 NewItem.Text = "My Item"
 NewItem.SubItems.Add(mydate.tostring("yyyy-MM-dd"))
 ListView1.Items.Add(NewItem)
&#13;
&#13;
&#13;