我有一个看起来像这样的数组:
let movies = [
'terminator.1',
'terminator.2',
'terminator.3',
'harry-potter.1',
'harry-potter.3',
'harry-potter.2',
'star-wars.1'
]
我想要一个像这样的对象:
{
"terminator": [1,2,3],
"harry-potter": [1,2,3],
"star-wars": [1]
}
到目前为止,我能够拥有这样的对象
{
{ terminator: [ '1' ] },
{ terminator: [ '2' ] },
{ terminator: [ '3' ] },
{ 'harry-potter': [ '1' ] },
{ 'harry-potter': [ '3' ] },
{ 'harry-potter': [ '2' ] },
{ 'star-wars': [ '1' ] }
}
我想知道是否有一种方法可以在生成对象时在 Array.map 期间检查是否已经存在某个键,并且是否要将值推送到相应的数组而不是创建新键-价值对。
这是我目前用于我的解决方案的代码。提前致谢。
let movies = [
'terminator.1',
'terminator.2',
'terminator.3',
'harry-potter.1',
'harry-potter.3',
'harry-potter.2',
'star-wars.1'
]
let t = movies.map(m => {
let [name, number] = [m.split('.')[0],m.split('.')[1]]
return {[name]: [number]}
})
console.log(t)