1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| function solution(genres, plays) {
const album = {};
genres
.forEach((key, index) => {
album[key] = [...(album[key] ?? []), [index, plays[index]]];
});
return Object.keys(album)
.map(key => [key, album[key].reduce((acc, array) => acc + array[1], 0), album[key]])
.sort((a, b) => b[1] - a[1])
.filter((_, index) => index < 2)
.map(array => array[2])
.map(album => album.sort((a, b) => b[1] - a[1]))
.map(album => album.filter((_, index) => index < 2))
.map(albums => albums.map(album => album[0]))
.flat();
}
|