-2

看看下面的数组

[{x: 'SomeName-1', value: 2}, 
 {x: 'SomeName-2', value: 3}, 
 {x: 'SomeName-1', value: 5},
 {x: 'SomeName-2', value: 8},
 {x: 'SomeName-1', value: 1},
 {x: 'SomeName-3', value: 4}]

我如何格式化这个数组,这样我就可以x通过添加它的所有值来重复一次。所以结果将如下所示

[{x: 'SomeName-1', value: 8}, {x: 'SomeName-2', value: 11}, {x: 'SomeName-3', value: 4},]

提前问...

4

1 回答 1

0

您可以使用 reduce 来根据您的.x属性对值进行分组。如下所示:

const newList = list.reduce((items, item) => {
    const {x, value} = item;
  const itemIndex = items.findIndex(item => item.x === x)
  if(itemIndex === -1){
    items.push(item);
  } else {
    items[itemIndex].value += value;
  }
  
  return items;
}, []);

或者看看这个小提琴

于 2021-04-28T14:22:24.313 回答