簡體   English   中英

如何grep JavaScript或jQuery中包含的JSON數組

[英]How to grep the JSON array contains in JavaScript or jQuery

考慮:

   var dummyArray =  [{
        "fname": "gali",
        "lname": "doe"
    }, {
        "fname": "john",
        "lname": "danny"
    }, {
        "fname": "joe",
        "lname": "dawns"
    }, {
        "fname": "liji",
        "lname": "hawk"
    }]

dummyArray = j$.grep(dummyArray, function(dt) {
             return (dt.fname== 'j');
});

如何使用grep函數查詢包含字母“j”的“fname”?

使用 ECMAScript 5 標准函數Array.filter只返回匹配謂詞的元素:

以“j”開頭

var j = dummyArray.filter(function(o) {
    return o.fname.charAt(0) === 'j';
});

或者,包含“j”

var j = dummyArray.filter(function(o) {
    return o.fname.indexOf('j') >= 0;
});

您可以使用indexOf

dummyArray = $.grep(dummyArray, function(dt) {
    return dt.fname.indexOf("j") != -1;
});

演示: http : //jsfiddle.net/Nhmwk/

你可以像這樣使用普通的 JavaScript 來做到這一點:

dummyArray = (function(){
  var result = [];
  for (var i=0, l=dummyArray.length; i<l; i++)
    if (/j/.test(dummyArray[i].fname))
      result.push(dummyArray[i]);
  return result;
}());

您可以通過更改正則表達式輕松測試內容。 例如,您可以測試以j開頭而不是包含/^j/

演示: http : //jsfiddle.net/elclanrs/2Bw2y/

您可以使用函數索引

dummyArray = $.grep(dummyArray, function(dt) {
    return dt.fname.indexOf("j") != -1;
});


// To be case-insensitive, use:
dummyArray = $.grep(dummyArray, function(dt) {
    return dt.fname.toLowerCase().indexOf("j") != -1;
});

小提琴: http : //jsfiddle.net/kYXPa/

暫無
暫無

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

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