如何根据数组中存在的属性过滤数组中的数据?

问题描述 投票:0回答:1

我得到一个如下所示的 JSON 数据源:

[
  {
    "id": 1,
    "name": 'name',
    "array": [
      { "id": 1}, { "id": 2}
    ]
  },
  {...}
]

我想根据

array
中包含的 id 过滤此数据。

但我不知道如何使用 array.filter 和 include 来做到这一点。你能帮我吗?

javascript
1个回答
0
投票

您可以通过以下方式实现上述内容的过滤:

let data = [
  {
    "id": 1,
    "name": 'name',
    "array": [
      { "id": 1}, { "id": 2}
    ]
  },
];

let idToFind = 1; 

let filteredData = data.filter(item => {
  return item.array.some(innerItem => innerItem.id === idToFind);
});

console.log(filteredData);

filter
用于遍历
data
数组中的每个项目。对于每个项目,
some
方法用于检查
array
字段中是否存在
id
等于
idToFind
的对象。如果有,则该项目包含在
filteredData
数组中。

© www.soinside.com 2019 - 2024. All rights reserved.