Javascript 使用输入搜索json

Javascript 使用输入搜索json,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我想建立一个简单的搜索输入来检查json文件 我当前的代码是这样的,这不起作用,因为每个json父级都有一个名称。 如果我删除名称“json1”/“json2”,它就会工作 var-dataArr=[{ “json1”:{ “汽车”:“本田”, “id”:“0123”, “姓名”:“吉姆” }, “json2”:{ “汽车”:“丰田”, “id”:“0124”, “姓名”:“詹姆斯” } }]; $(“#搜索”).on('keypress keyup change input',functio

我想建立一个简单的搜索输入来检查json文件

我当前的代码是这样的,这不起作用,因为每个json父级都有一个名称。 如果我删除名称“json1”/“json2”,它就会工作

var-dataArr=[{
“json1”:{
“汽车”:“本田”,
“id”:“0123”,
“姓名”:“吉姆”
},
“json2”:{
“汽车”:“丰田”,
“id”:“0124”,
“姓名”:“詹姆斯”
}
}];
$(“#搜索”).on('keypress keyup change input',function(){
var arrival=$(this.val().toLowerCase();
$(“#匹配”)。文本(!arrival.length?“”:
数据阵列过滤器(功能(位置){
return(place.name.toLowerCase().indexOf(arrival)!=-1);
}).地图(功能(地点){
返回place.name;
}).join('\n');
});

这是行不通的。因为我的json结构有父名称

只需将第一个代码段数组转换为第二个代码段数组。使用

var dataArr=[{“json1”:{“car”:“honda”,“id”:“0123”,“name”:“jim”},“json2”:{“car”:“toyota”,“id”:“0124”,“name”:“james”}];
dataArr=Object.values(dataArr[0]);
$(“#搜索”).on('keypress keyup change input',function(){
var arrival=$(this.val().toLowerCase();
$(“#匹配”)。文本(!arrival.length?“”:
数据阵列过滤器(功能(位置){
return(place.name.toLowerCase().indexOf(arrival)!=-1);
}).地图(功能(地点){
返回place.name;
}).join('\n'))
});

这是行不通的。因为我的json结构有父名称

您可以使用
对象值

var-dataArr=[{
“json1”:{
“汽车”:“本田”,
“id”:“0123”,
“姓名”:“吉姆”
},
“json2”:{
“汽车”:“丰田”,
“id”:“0124”,
“姓名”:“詹姆斯”
}
}];
$(“#搜索”).on('keypress keyup change input',function(){
var arrival=$(this.val().toLowerCase();
设filterVal=filteredVal(到达);
let car=filterVal[0]?filterVal[0]。汽车:“”
$('#matches').text(!arrival.length?'':car);
})
函数filteredVal(searchedName){
让getKeys=Object.values(dataArr[0]).filter(函数(elem){
返回elem.car==searchedName;
});
返回getkey;
}


绝对的救生装置!6分钟内无法将此标记为正确,但我会这样做@麦克欢迎兄弟