问题描述
我的输入列表是:
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);