[英]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/
。
您可以使用函數索引:
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.