Javascript 按属性筛选嵌套对象
我正在使用一个(设计糟糕的)API,该API发送以下响应: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()将其设置为数组。然后将对象值作为单个
{
"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之间)