[英]Return object from array that matches key:value pair of an object nested in the object I need to return
[英]Filtering a nested array and return the array which matches the value for the key
我正在尝试根据 id 过滤包含 arrays 的 object 的数组。 我能够过滤它们,但需要稍微清理一下 output,因为它也返回一个空数组,因为该数组的条件不匹配。
我如何解决它?
const resKey = 'ABC'; const data = [ [{ "user": { "firstName": "John", "lastName": "Smith", }, "id": "ABC" }], [{ "user": { "firstName": "John", "lastName": "Smith", }, "id": "DEF" }] ]; const result = data.map(eachArr => eachArr.filter(eachObj => eachObj.id === resKey)); console.log(result);
预计 Output:
[
[
{
user: {
firstName: "John",
lastName: "Smith",
},
id: "ABC",
},
],
]
实际 Output:
[
[
{
user: {
firstName: "John",
lastName: "Smith",
},
id: "ABC",
},
],
[],
]
您可以使用filter再次过滤掉不包含元素( length
为0
)的空数组。
.filter((arr) => arr.length);
const resKey = "ABC"; const data = [ [ { user: { firstName: "John", lastName: "Smith", }, id: "ABC", }, ], [ { user: { firstName: "John", lastName: "Smith", }, id: "DEF", }, ], ]; const result = data.map((eachArr) => eachArr.filter((eachObj) => eachObj.id === resKey)).filter((arr) => arr.length); console.log(result);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.