2017-09-03 21 views
0

私はjavascriptオブジェクトの中で同じ値を見つけたいと思っています(おそらく後で最小、最大統計を追加します) 私のコードが予期しない出力を返すので、私はちょうど立ち往生しています しかし、比較のためjavascriptオブジェクト間で同じ値を持つオブジェクトプロパティを見つけるにはどうすればよいですか?

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);

+5

単一 "="は変数に値を代入していますが、==と===は論理演算子です(比較演算子)。 – Adriani6

+0

[JavaScriptオブジェクト間の共通プロパティの検索方法](https://stackoverflow.com/questions/23199349/how-to-find-common-properties-between-javascript-objects) – pedromss

+0

Thx、その質問を見ました私は共通のプロパティを探しているわけではありませんが、同じ値を持つ共通のプロパティを探しています:) – giorgio79

答えて

3

使用==又は===)同じ値を持つ共通のプロパティの共通プロパティ。 ライン(obj1[property] = obj2[property])obj1[property]からobj2[property]の値を代入します。あなたのコードが何をするか

説明。代入式はJavaScriptで割り当てられた値を返すため(0がfalsy値であるため)、発現が"peaches"ため"oranges""apples"43はtruthy値であるため)、falseためtrueと評価します。

0

if文

  • =左手側の変数に右辺の値を代入します
  • 両側に値を比較します
  • ==(例えば1 =内部で==する=変更してください。 = '1' 真なります)
  • ===トリプル使っ=あなたが値とそのタイプの両方をチェックしたい場合は、(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);

関連する問題