如何摆脱指定索引中的重复项并创建JavaScript中的单个列表

问题描述

我的输入列表是:

data = [['A','0'],['B',['C','1'],['D','2'],['E',['F','4'],['G','9'],['H',['I',]

,预期输出为:

data = [['A','B','E','H','I','4']]

在Java脚本中。 在考虑解决方案时,我的头发不见了。

解决方法

您可以使用Array.reduce将数字中的字母值分组为键;然后使用Object.entries获取键/值对,最后使用Array.map将数字添加到字母值数组中:

const data = [
  ['A','0'],['B',['C','1'],['D','2'],['E',['F','4'],['G','9'],['H',['I','4']
];

const result = Object.entries(data.reduce((c,v) => {
  if (!c[v[1]]) c[v[1]] = [];
  c[v[1]].push(v[0]);
  return c;
},{})).map(([k,v]) => [...v,k]);
console.log(result);