0

オブジェクトに特定の値が含まれているかどうかを判断しようとしているので、探している値を複数回追加して再帰を防ぐことができます。

私は多くの方法を試しましたが、それらのいずれも機能させることができません:

data = [
  {val:'xxx',txt:'yyy'},
  {val:'yyy',txt:'aaa'},
  {val:'bbb',txt:'ccc'}
];

console.log(jQuery.grep(data, function(obj){
    return obj.txt === "ccc";
}));
$.map(data, function(el) { 
    if(el.txt === 'ccc') 
        console.log('found')
});

これは map() grep() または inArray() で実行できますか、それとも配列全体をループして値を探す必要がありますか??

4

4 に答える 4

2

dataは複数のオブジェクトを含む配列であるため、検索する配列のインデックスを指定する必要があります。

data[0].val === 'xxx';
data[1].val === 'yyy';
data[2].txt === 'ccc';

関数の更新として、何が問題になってい$.eachますか?とにかくmapまたはgrepでループしているので、正直に言うとよいでしょう:Pループすることもできますがfor$.each現在のコードとほぼ同じであるため、例を示しています。

$.each(data, function(el) { 
  if(el.txt === 'ccc') 
    console.log('found')
});
于 2013-03-01T11:50:19.053 に答える
0

オブジェクトの配列であるため、配列全体を反復処理する必要があります。オブジェクトの比較は、値ではなく参照によって行われます。

for (var i = 0; i < data.length; i++){
    if (data[i].val == 'something')
        doSomething();
}
于 2013-03-01T11:50:30.047 に答える
0

このすべての計算を自分で避けたい場合は、多くのヘルパーを備えたユーティリティプラグインunderscore.jsがあります。

あなたが探しているヘルパーの1つはhttp://underscorejs.org/#containsです。

于 2013-03-01T11:51:08.197 に答える
0
var stExist=$.inArray(reqelement, dataArray)
于 2013-03-01T11:53:07.960 に答える