{ classic: 1450, pop: 3100 ,magic:1000};`
[
{ genre: 'pop', count: 600, index: 1 },
{ genre: 'pop', count: 2500, index: 4 },
{ genre: 'classic', count: 500, index: 0 },
{ genre: 'classic', count: 150, index: 2 },
{ genre: 'classic', count: 800, index: 3 },
{ genre: 'magic', count: 1000, index: 5 }
]
genres | plays |
---|---|
["classic", "pop", "classic", "classic", "pop"] | [500, 600, 150, 800, 2500] |
let dic = {}
genres.map((x,i)=>{
dic[x] = dic[x] ? dic[x] + plays[i] : plays[i];
})
객체를 선언 후 해당 내용에 대해
dic[genres]
마다의dic[genres]
가 없다면plays[i]
로 시작하고 이미 존재한다면 기존의dic[genres]
에서plays[i]
를 더한 것을 진행
let dupDic = {}
배열객체.filter((t)=>{
if(dupDic[t.genres] >= 2) return false;
dupDic[t.genres] = dupDic[t.genres] ? dupDic[t.genres]+1 : 1;
return true;
})
dupDic[t.genres]
이 없다면 1을 추가하고dupDic[t.genres]
이 이미있다면 1을 추가하여 갯수를 파악하고
갯수가 2를 넘으면 그외의 나머지는 제거를 하게 return false한다.
genres.map((t,i)=> ({genre : t, count:plays[i] , index:i}))
.sort((a,b)=>{
if(a.genre !== b.genre) return dic[b.genre] - dic[a.genre];
if(a.count !== b.count) return b.count - a.count;
})
배열에 대해 map을 적용하고 해당 return을
{}
형태로 만들어 필요한[{},{},{}]
로 만들고 이를 sort함수에 적용하여 적용시킬 수 있다.