【发布时间】: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]}
]
我知道这并不难,但我就是想不通。 有谁知道如何解决它? 有没有什么地方我可以找到并练习更多像这样的实际问题?
【问题讨论】:
-
熟悉how to access and process nested objects, arrays or JSON以及如何使用create objects并使用
Object和Array的可用静态和实例方法。 -
你可以在LeetCode上搜索不同的挑战/问题/常见的面试问题并练习它们:)
-
@Jimmy 发布你到目前为止所尝试的内容
-
如果你想写函数式的代码,有几个想法:
[...new Set(arr.map(x => x.name))].map(name => ({ name, values: arr.filter(x => x.name === name).map(x => x.values).flat() }))orObject.values(arr.reduce((a, { name, values }) => ({ ...a, [name]: { name, values: [...a[name]?.values ?? [], ...values] } }), {}))...
标签: javascript arrays algorithm data-structures