Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用索引名在JSON数组中搜索内容_Javascript_Jquery - Fatal编程技术网

Javascript 使用索引名在JSON数组中搜索内容

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

我有一个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 = [];
        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时,您将得到相同的结果