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

标签 javascript reactjs ecmascript-6 lodash

我有两个具有不同用途的父对象。

enter image description here

对象 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/

相关文章:

javascript - 如何在react中不添加url的情况下导航到特定路线

javascript - 动态样式组件标签名称

javascript - 如何将 Mongoose 中的鉴别器连接到我的父文档?尝试导入数据时出错

javascript - 不使用扩展运算符替换对象

javascript - Rails to_json 总是带有双引号,我该如何删除它们?

javascript - 在任何地方触摸隐藏移动浏览器上的模态/工具提示/灯箱

Javascript ES6 - 检查符号是否在全局注册表中可用而不创建它

javascript - 最后一个参数是回调时的NodeJS默认参数

javascript - IE 中奇怪的 javascript 解码行为

javascript - 事件响应中的问题