2013-03-01 30 views
0

我想確定一個對象是否包含一個特定的值,以便我可以肯定不追加我正在尋找的值不止一次,並防止遞歸。查找是否存在與jQuery的JavaScript對象的值

我已經試過很多方法,但不能得到任何他們的工作:

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

可以這樣配圖()的grep()或inArray()完成或者我真的要循環通過整個數組尋找值?

回答

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') 
}); 
0

您將不得不迭代整個數組,因爲它是一個對象數組,並且比較對象是通過引用而不是值完成的。

for (var i = 0; i < data.length; i++){ 
    if (data[i].val == 'something') 
     doSomething(); 
} 
0
var stExist=$.inArray(reqelement, dataArray) 
+0

閱讀我的答案,它不會工作。 '{} == {}'返回false。 – gdoron 2013-03-01 11:55:17

相關問題