将js数组中对象的属性值相等的对象组合成一个新的数组元素。 可以使用reduce、map等函数 比如: // 原始数组 const arr = [ {title: '标题1', url: 'url', groupId: -1}, {title: '标题2', url: 'url', groupId: 123}, {title: '标题3', url: 'url', groupId: 123}, {title: '标题4', url: 'url', groupId: -1}, {title: '标题5', url: 'url', groupId: 456}, {title: '标题6', url: 'url', groupId: 456}, {title: '标题6', url: 'url', groupId: 789}, ] // 期望结果 const resArr = [ {title: '标题1', url: 'url'}, {groupId: 123, group: [{title: '标题2', url: 'url'}, {title: '标题3', url: 'url'}]}, {title: '标题4', url: 'url'}, {groupId: 456, group: [{title: '标题5', url: 'url'}, {title: '标题6', url: 'url'}]} ] 如果 `groupId` 为-1,则删除其`groupId`属性,并按顺序将该元素加入新的数组中即可 另外:arr数组中相同groupId的元素在数组中的位置**总是相邻** 的。(groupId为-1的除外) 比如: // 正例 const arr = [ {title: '标题1', url: 'url', groupId: -1}, {title: '标题2', url: 'url', groupId: 123}, {title: '标题3', url: 'url', groupId: 123}, {title: '标题4', url: 'url', groupId: -1}, {title: '标题5', url: 'url', groupId: 456}, {title: '标题6', url: 'url', groupId: 456}, {title: '标题4', url: 'url', groupId: -1}, ] // 反例 const arr = [ {title: '标题1', url: 'url', groupId: -1}, {title: '标题2', url: 'url', groupId: 123}, {title: '标题4', url: 'url', groupId: -1}, {title: '标题3', url: 'url', groupId: 123}, {title: '标题5', url: 'url', groupId: 456}, {title: '标题5', url: 'url', groupId: 789}, {title: '标题6', url: 'url', groupId: 456}, ]