Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.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/2/node.js/42.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 按属性筛选嵌套对象_Javascript_Node.js_Arrays_Json_Rest - Fatal编程技术网

Javascript 按属性筛选嵌套对象

Javascript 按属性筛选嵌套对象,javascript,node.js,arrays,json,rest,Javascript,Node.js,Arrays,Json,Rest,我正在使用一个(设计糟糕的)API,该API发送以下响应: { "0" : { “姓名”:“约翰”, “姓”:“Doe” }, "1" : { “姓名”:“玛丽”, “姓”:“安” }, [...] } 正如您可能已经注意到的,它是一个带有嵌套对象的大型JSON对象。因为它不是数组,所以我不能使用.filter()。那么,如何通过嵌套对象属性(例如name或last\u name)过滤这个大对象?您可以使用object.values(type).flat()将其设置为数组。然后将对象值作为单个

我正在使用一个(设计糟糕的)API,该API发送以下响应:

{
"0" : {
“姓名”:“约翰”,
“姓”:“Doe”
},
"1" : {
“姓名”:“玛丽”,
“姓”:“安”
},
[...]
}

正如您可能已经注意到的,它是一个带有嵌套对象的大型JSON对象。因为它不是数组,所以我不能使用
.filter()
。那么,如何通过嵌套对象属性(例如
name
last\u name
)过滤这个大对象?

您可以使用object.values(type).flat()将其设置为数组。然后将对象值作为单个数组

const input1={
"0" : {
“姓名”:“约翰”,
“姓”:“Doe”
},
"1" : {
“姓名”:“玛丽”,
“姓”:“安”
}
}
功能搜索(输入,键){
返回Object.values(input.flat().filter(({name})=>name==key);
}

console.log(搜索(input1,“John”)可以使用
Object.values(type).flat()将其设置为数组。然后将对象值作为单个数组。请提供一个示例?我不熟悉Javascript不幸的是,过滤后的预期输出是数组还是对象?键(即:0、1等)是否像数组中的索引一样连续,或者它们是否有间隙(例如:您有键0、3,但键不在1、2之间)