【问题标题】:How to get rid of duplicates from specified index and creae a single list in Javascript如何从指定索引中删除重复项并在 Javascript 中创建单个列表
【发布时间】:2020-10-20 08:06:26
【问题描述】:

我的输入列表是:

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

预期输出是:

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

在java脚本中。 想解决办法的时候头发掉光了。

【问题讨论】:

  • 预期的输出没有任何意义。您必须解释从该输入获得该输出究竟发生了什么。正如你给出的解释一样,它没有任何意义。
  • 据我所知,它按第二个索引中的数字分组,唯一令人困惑的是缺少 [G,9]
  • 对不起...我的错误... [G,9] 应该在那里

标签: javascript node.js arrays list data-structures


【解决方案1】:

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

const data = [
  ['A', '0'],
  ['B', '0'],
  ['C', '1'],
  ['D', '2'],
  ['E', '0'],
  ['F', '4'],
  ['G', '9'],
  ['H', '1'],
  ['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);

【讨论】:

猜你喜欢
  • 2016-06-26
  • 1970-01-01
  • 1970-01-01
  • 2022-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多