我想在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);
答案 0 :(得分:3)
使用==
或===
进行比较。
解释您的代码的作用:
第(obj1[property] = obj2[property])
行将obj2[property]
的值分配给obj1[property]
。因为javascript中的赋值表达式返回指定的值,所以true
和"oranges"
的表达式求值为"apples"
(因为4
和3
是真值) false
的{{1}}(因为"peaches"
是假值)。
答案 1 :(得分:0)
请在if语句
中更改= to ==
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);