Javascript 使用索引名在JSON数组中搜索内容
我有一个JSON数组[{id:38,label:def},{id:10,label:abc}] 当输入像这样的关键字d或e时,我需要将结果数组作为{id:38,label:def} 我尝试使用jQuery来执行此操作:Javascript 使用索引名在JSON数组中搜索内容,javascript,jquery,Javascript,Jquery,我有一个JSON数组[{id:38,label:def},{id:10,label:abc}] 当输入像这样的关键字d或e时,我需要将结果数组作为{id:38,label:def} 我尝试使用jQuery来执行此操作: var jsonArrr =[{"id":38,"label":"def"},{"id":10,"label":"abc"}]; var matchMe = new RegExp('^' + 'e', 'i'); var matches = []; fo
var jsonArrr =[{"id":38,"label":"def"},{"id":10,"label":"abc"}];
var matchMe = new RegExp('^' + 'e', 'i');
var matches = [];
for (var i in jsonArrr) {
if (jsonArrr[i].label.search(matchMe) > -1 ) {
matches.push( {'id': i, 'label': jsonArrr[i].label} );
}
}
content = '';
for (var i in matches) {
console.log(matches[i].label);
}
但是这个代码输出
Uncaught TypeError: Cannot read property 'search' of undefined
我做错了什么?您可以使用和在字符串中查找值,如下所示
var data=[{id:38,label:def},{id:10,label:abc},{id:38,label:abc}];
函数filterdata,关键字{
返回data.filterfunction el{
返回el.label.indexOfkeyword>=0;
}
}
函数过滤器CaseInsensitiveData,关键字{
返回data.filterfunction el{
返回新的regexp关键字“i”.testel.label;
}
}
$'keyword'。在'keyup'上,函数{
$'result'.html JSON.stringifyfilterdata,this.value;
$'ResultCaseSensitive'.html JSON.stringifyfilterCaseInsensitivedata,this.value;
};
您可以使用和在字符串中查找值,如下所示
var data=[{id:38,label:def},{id:10,label:abc},{id:38,label:abc}];
函数filterdata,关键字{
返回data.filterfunction el{
返回el.label.indexOfkeyword>=0;
}
}
函数过滤器CaseInsensitiveData,关键字{
返回data.filterfunction el{
返回新的regexp关键字“i”.testel.label;
}
}
$'keyword'。在'keyup'上,函数{
$'result'.html JSON.stringifyfilterdata,this.value;
$'ResultCaseSensitive'.html JSON.stringifyfilterCaseInsensitivedata,this.value;
};
你也可以这样做
jsonArrr.filter(function(item) { return new RegExp('.*'+keyword+'.*').test(item.label); })
但我建议在您的情况下使用indexOf您也可以这样做
jsonArrr.filter(function(item) { return new RegExp('.*'+keyword+'.*').test(item.label); })
但是我建议在您的情况下使用indexOf来代替搜索您可以使用match函数代替搜索您可以使用match函数是否可以检查不区分大小写。。ie在按下a或a时得到相同的结果???@VP你能给我一个例子,你希望得到什么结果吗?ie,当输入关键字d时,od d显示相同的结果。不区分大小写的搜索/筛选..@V P您是否尝试过第二个函数FilterCaseSensitive?当您输入a或a时,您将在第二个示例中得到相同的结果是否可以检查不区分大小写。。ie在按下a或a时得到相同的结果???@VP你能给我一个例子,你希望得到什么结果吗?ie,当输入关键字d时,od d显示相同的结果。不区分大小写的搜索/筛选..@V P您是否尝试过第二个函数FilterCaseSensitive?在第二个示例中,当您输入a或a时,您将得到相同的结果