【问题标题】:JavaScript: Merge the elements with the same key into the arrayJavaScript:将具有相同键的元素合并到数组中
【发布时间】:2021-12-31 08:14:21
【问题描述】:

我想找到一个数组的重复元素和两个重复元素的数组。

array = [
  ["41",{asd:"1"}],
  ["41",{asd:"2"}],
  ["42",{asd:"1"}],
  ["42",{asd:"2"}]
]

我想要的结果

result=[
  ["41",{asd:"1"},{asd:"2"}],
  ["42",{asd:"1"},{asd:"2"}],
]

我必须使用核心 JavaScript。不允许使用框架。

【问题讨论】:

  • 你的代码出了什么问题?
  • 请将您尝试过的代码添加为minimal reproducible example
  • 对不起,伙计!这是我第一次使用它,下次我会学习它

标签: javascript arrays object


【解决方案1】:

reduce 在数组上。在每次迭代中从数组中提取键和对象。如果累加器上不存在该键,则将其添加并将其值设置为[key],然后将对象推入其中。然后使用Object.values 得到你需要的输出。

const arr = [
  ["41",{asd:"1"}],
  ["41",{asd:"2"}],
  ["42",{asd:"1"}],
  ["42",{asd:"2"}]
];

const out = arr.reduce((acc, c) => {
  const [key, obj] = c;
  acc[key] = acc[key] || [key];
  acc[key].push(obj);
  return acc;
}, {});

console.log(Object.values(out));

【讨论】:

  • 谢谢,我已经解决了这个问题。谢谢
猜你喜欢
  • 2021-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-18
  • 1970-01-01
相关资源
最近更新 更多