Sort를 위한 객체와 배열객체 사용법

KHW·2021년 7월 1일
0

Javascript 지식쌓기

목록 보기
51/95

객체와 배열객체

  • 객체
{ 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 }
]

사용하는 때

  • 객체 : 배열에 대해 중복되거나 합치고 싶은 통합을 위한 용도
  • 배열객체 : sort와 같은 함수를 적용하여 배열을 정렬하고 싶을때

사용법

genresplays
["classic", "pop", "classic", "classic", "pop"][500, 600, 150, 800, 2500]

객체

  1. 장르마다의 plays의 총합을 구하고 싶을때
    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]를 더한 것을 진행

  1. 장르마다의 일정 갯수까지만 정하고 싶을때 (갯수 더하기)
	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함수에 적용하여 적용시킬 수 있다.

profile
나의 하루를 가능한 기억하고 즐기고 후회하지말자

0개의 댓글