如何将一个数组对象里面每个具有相同的字段筛选出来组成一个新数组 请代码示例
时间: 2024-01-22 18:18:43 浏览: 102
假设我们有一个包含多个对象的数组,每个对象都有一个 `group` 字段,我们需要将具有相同 `group` 字段的对象筛选出来组成一个新的数组。可以使用 JavaScript 中的 `filter` 和 `map` 方法来实现。
```javascript
const arr = [
{ id: 1, group: 'A', name: 'John' },
{ id: 2, group: 'B', name: 'Jane' },
{ id: 3, group: 'A', name: 'Bob' },
{ id: 4, group: 'C', name: 'Alice' },
{ id: 5, group: 'B', name: 'Tom' },
];
// 获取所有不重复的 group 字段
const groups = [...new Set(arr.map(item => item.group))];
// 根据 group 字段筛选出对应的对象组成新的数组
const newArr = groups.map(group => {
return arr.filter(item => item.group === group);
});
console.log(newArr);
```
输出结果:
```
[
[
{ id: 1, group: 'A', name: 'John' },
{ id: 3, group: 'A', name: 'Bob' }
],
[
{ id: 2, group: 'B', name: 'Jane' },
{ id: 5, group: 'B', name: 'Tom' }
],
[
{ id: 4, group: 'C', name: 'Alice' }
]
]
```
可以看到,我们将原数组中具有相同 `group` 字段的对象分别筛选出来,组成了一个新的数组。
阅读全文