繁体   English   中英

过滤嵌套数组并返回与键值匹配的数组

[英]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再次过滤掉不包含元素( length0 )的空数组。

.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM