2016-07-29 8 views
0

テーブル内の各オブジェクトと1つのオブジェクトを正しく比較するにはどうすればよいですか? if(object == $.each(table)){ do something }jQueryでのオブジェクトの比較

オブジェクトとオブジェクトを比較する最も簡単な方法は何ですか?

+0

「オブジェクト」とは何ですか? 'テーブル'とは何ですか?平等を定義するものは何ですか?あなたは確かに '$ .each()'の呼び出しと比較することはできません。意味のあることはありません。 – David

+0

私はランダムなカードを取得する必要があります、次のチェックはすでに私の手にそのカードがあります。そうなら、新しいカードが得られるまで次のカードを引きます。 do-while条件でこれを行う方法はありますか? –

+0

まあ、既知のカードをループして値を比較することができます。 – David

答えて

0

あなただけ確認したい場合は、与えられた値は、値のリストに存在する場合、あなたはそのリストをループすることができます:

var found = false; 
for (var i = 0; i < table.length; i++) { 
    if (object == table[i]) { 
     found = true; 
     break; // no need to keep looping 
    } 
} 
if (found === true) { 
    // the value was found in the collection 
} 

何であるかobjecttableによっては、あなたが特定のプロパティを比較する必要があるかもしれませんオブジェクト全体ではありません。たとえば:

if (object.someKeyValue === table[i].someKeyValue) 

「平等」の定義は必ずしも容易なことではなく、単純なスカラー値の範囲外で、あなたはかなり責任が「等しい」いずれかの2つのオブジェクトを作るものが定義するためです。 (あなたは、物事にはもちろん、より意味のある名前を与えるかもしれないが、これは単に質問に不自然な例と一致している

if (areEqual(object, table[i])) 

:あなたは複数のフィールドを比較する必要がある場合は、内部でそれらを比較する関数にその抽象的かもしれません)

最終的には、全体の構造は実際は同じになるでしょう。値とコレクションを指定すると、コレクションの内容を調べ、その内容と値を比較して一致を見つける(または見つからない)ことになります。