根据结束编号对对象进行分组

ram*_*man 1 javascript object

这是示例对象

{
  abc_0: 'a',
  bcd_0: 'b',
  cde_0: 'c',
  abc_1: 'a',
  bcd_1: 'b',
  cde_1: 'c',
  def_1: 'd',

}
Run Code Online (Sandbox Code Playgroud)

我想通过它们结尾的数字进行分组,并希望预期输出为

{
 0: {abc: 'a', bcd: 'b', cde: 'c'},
 1: {abc: 'a', bcd: 'b', cde: 'c', def : 'd'},
}
Run Code Online (Sandbox Code Playgroud)

Hao*_* Wu 5

您可以尝试这个解决方案:

const data = {
  abc_0: 'a',
  bcd_0: 'b',
  cde_0: 'c',
  abc_1: 'a',
  bcd_1: 'b',
  cde_1: 'c',
  def_1: 'd',
};

const result = Object.entries(data).reduce((acc, [combo, value]) => {
  const [key, index] = combo.split('_');
  acc[index] = { ...acc[index], [key]: value };
  return acc;
}, {});

console.log(result);
Run Code Online (Sandbox Code Playgroud)