배열안의 객체 / 그냥 객체
배열안의 객체
[{'a' : 10, 'b' : 20} , {'a' :30 , 'b' :100}] 이러한 것들로 각각을 sort로 분류시킬 수 있다.
그냥 객체
let obj = {'a' : 10 ,'b' :300} 이러한 형태로 obj['a'] or obj['b']를 통해 접근이 가능하고 관련 모음의 전체를 사용하고자 할때 사용한다.
ex)
genres | plays |
---|---|
["classic", "pop", "classic", "classic", "pop"] | [500, 600, 150, 800, 2500] |
이때, 각 장르당 plays의 총합은
let dic ={}
genres.map((val,idx)=>{
dic[val] = dic[val] ? dic[val] + plays[idx] : plays[idx]
})
dic // { classic: 1450, pop: 3100 }
그리고 이를
1. 속한 노래가 많이 재생된 장르를 먼저 수록합니다.
2. 장르 내에서 많이 재생된 노래를 먼저 수록합니다.
3. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다.
분류를 위해서는
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;
if(a.index !== b.index) return a.index - b.index;
})
순서대로 장르가 같지않으면 장르가 많이 재생된 순서로 하고
장르가 같으면 그다음으로 재생 많이된 노래를 순서로 하고
장르가 같고 재생된 노래가 같으면 고유번호가 낮은 순서(오름차순)으로 진행한다.
정리
총합을 구하기 위해서는 하나의 {}형태로 나타내고
각각을 sort로 분리하기 위해서는 {}의 여러개인 [{..},{..},{..}] 형태로 나타내서 분리에 사용해야한다.
이때 주의 할 점은 if문으로 sort함수 안에서 조건을 지정한다.
Author And Source
이 문제에 관하여(배열안의 객체 / 그냥 객체), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@khw970421/배열안의-객체-그냥-객체저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)