js让一个数组某个字段一样的放到一起
时间: 2023-07-23 17:32:05 浏览: 106
可以使用JavaScript中的Array.prototype.reduce()方法来实现这个功能,具体步骤如下:
假设有一个数组arr,其中包含多个对象,对象中有一个字段为field,现在需要将所有field字段相同的对象放到一起,最终返回一个新的数组newArr。
代码如下:
```javascript
const arr = [
{ field: 'a', value: 1 },
{ field: 'b', value: 2 },
{ field: 'a', value: 3 },
{ field: 'c', value: 4 },
{ field: 'b', value: 5 }
];
const newArr = arr.reduce((acc, cur) => {
const index = acc.findIndex(item => item.field === cur.field);
if (index > -1) {
acc[index].value.push(cur.value);
} else {
acc.push({
field: cur.field,
value: [cur.value]
});
}
return acc;
}, []);
console.log(newArr);
```
运行结果为:
```
[
{ field: 'a', value: [1, 3] },
{ field: 'b', value: [2, 5] },
{ field: 'c', value: [4] }
]
```
可以看到,新的数组newArr中将所有field字段相同的对象放到了一起,并且将相同field字段的value值放到了一个数组中。
阅读全文