如何在javascript对象中找到具有相同值的对象属性?

时间:2017-09-03 13:07:15

标签: javascript object for-loop

我想在javascript对象中找到相同的值(可能稍后也会添加min,max统计信息) 当我的代码返回一些意外的输出时,我在开始时卡住了 (PS我不是在寻找常见属性,而是寻找具有相同值的常见属性)

var obj1 = { "oranges": 5, "apples": 3, "peaches": 1 };
var obj2 = { "oranges": 4, "apples": 3, "peaches": 0 };
var obj3 = { "oranges": 5, "apples": 3, "peaches": 5 };
var obj_common = {};

for (var property in obj1) {
  if (obj1[property] = obj2[property])
    obj_common[property] = obj1[property];
}

console.log(obj_common);

2 个答案:

答案 0 :(得分:3)

使用=====进行比较。

解释您的代码的作用:(obj1[property] = obj2[property])行将obj2[property]的值分配给obj1[property]。因为javascript中的赋值表达式返回指定的值,所以true"oranges"的表达式求值为"apples"(因为43是真值) false的{​​{1}}(因为"peaches"是假值)。

答案 1 :(得分:0)

请在if语句

中更改= to ==
  • =将右侧的值分配给左侧的变量
  • ==将比较双方的价值(例如1 =='1'给出为真)
  • ===使用triple =如果你想检查值及其类型(1 ==='1'给出错误)

var obj1 = { "oranges": 5, "apples": 3, "peaches": 1 };
var obj2 = { "oranges": 4, "apples": 3, "peaches": 0 };
var obj3 = { "oranges": 5, "apples": 3, "peaches": 5 };
var obj_common = {};

for (var property in obj1) {
  if (obj1[property] == obj2[property])
    obj_common[property] = obj1[property];
}

console.log(obj_common);