js数组操作——对象数组根据某个相同的字段分组
可以使用JavaScript的map()方法和reduce()方法来实现将数组中包含的数组对象的某个字段整合为数组的操作。具体实现方法如下:
假设有以下数组对象arr:
let arr = [
{name: 'Tom', age: 18, hobbies: ['reading', 'swimming']},
{name: 'Jerry', age: 20, hobbies: ['running', 'singing']},
{name: 'Lucy', age: 22, hobbies: ['dancing', 'drawing']}
];
1.使用map()方法将每个对象的hobbies属性映射为一个新的数组:
let hobbiesArr = arr.map(item => item.hobbies);
2.使用reduce()方法将多个数组合并为一个数组:
let resultArr = hobbiesArr.reduce((prev, curr) => prev.concat(curr));
因此,可以将以上两个步骤合并为一步,实现将数组中包含的数组对象的某个字段整合为数组的操作:
let resultArr = arr.map(item => item.hobbies).reduce((prev, curr) => prev.concat(curr));
12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25