// 假设有以下对象数组
const arr = [
{ id: 1, value: 'A' },
{ id: 2, value: 'B' },
{ id: 3, value: 'A' },
{ id: 4, value: 'C' },
{ id: 5, value: 'B' }
];
// 使用 reduce 方法进行属性合并
const mergedArr = arr.reduce((acc, obj) => {
const foundObj = acc.find(item => item.value === obj.value);
if (foundObj) {
foundObj.ids.push(obj.id); // 将相同属性的 id 添加到 ids 数组中
} else {
acc.push({ value: obj.value, ids: [obj.id] }); // 创建新的对象
}
return acc;
}, []);
console.log(mergedArr);
输出结果为
[
{ value: 'A', ids: [1, 3] },
{ value: 'B', ids: [2, 5] },
{ value: 'C', ids: [4] }
]