【问题标题】:JavaScript array manipulation interview question [duplicate]JavaScript数组操作面试题[重复]
【发布时间】:2021-11-12 06:06:34
【问题描述】:

这是我面试时遇到的一个问题:

编写一个函数来转换数组:

[
  {name:'a',values:[1,2]},
  {name:'b',values:[3]},
  {name:'a',values:[4,5]}
]

到:

[
  {name:'a',values:[1,2,4,5]},
  {name:'b',values:[3]}
]

我知道这并不难,但我就是想不通。 有谁知道如何解决它? 有没有什么地方我可以找到并练习更多像这样的实际问题?

【问题讨论】:

标签: javascript arrays algorithm data-structures


【解决方案1】:

你可以通过name对数组进行分组,然后使用分组的对象得到一个数组:

const bla = [
  {name:'a',values:[1,2]},
  {name:'b',values:[3]},
  {name:'a',values:[4,5]}
];

const res = Object.values(bla.reduce((obj, { name, values }) => {
  obj[name] = obj[name] ?? {name, values: []}
  obj[name].values.push(...values)
  return obj
}, {}));

console.log(res)

【讨论】:

    猜你喜欢
    • 2020-01-15
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 2016-03-20
    • 2021-12-05
    • 2017-11-09
    • 2014-09-17
    相关资源
    最近更新 更多