簡體   English   中英

使用jquery查找javascript對象中是否存在值

[英]finding whether a value exists in a javascript object with jquery

我試圖確定一個對象是否包含一個特定的值,以便我可以確保不會追加我不止一次尋找的值並防止遞歸。

我已經嘗試了很多方法,但無法使其中任何一個工作:

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()來完成,還是我真的需要遍歷整個數組來尋找值?

data是一個包含多個對象的數組,因此您需要指定要查看的數組的索引:

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

作為對您的函數的更新, $.each什么問題? 你有地圖或grep的反正循環,所以你可能也只是說實話吧:P你可以帶環for為好,但我與exampling $.each因為它幾乎等同於當前的代碼。

$.each(data, function(el) { 
  if(el.txt === 'ccc') 
    console.log('found')
});

您將不得不迭代整個數組,因為它是一個對象數組,比較對象是由引用而不是由值完成的。

for (var i = 0; i < data.length; i++){
    if (data[i].val == 'something')
        doSomething();
}

如果你想自己避免所有這些計算,有一個實用程序插件underscore.js ,它有很多幫助器。

你正在尋找的幫手之一http://underscorejs.org/#contains

var stExist=$.inArray(reqelement, dataArray)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM