# 일일코딩- 배너 뽑아내 정렬하기

# Question

lc.Home.promotions 에 들어 있는 데이터 중 만화 홈 메인 배너들의 comicId를 알파벳 순서로 구하시오.

  • 만화 홈 메인 배너는 slot == 'home_main' 조건
  • jQuery 사용 금지 for, while 문 사용 금지

# Answer

# milooy

function compare(a, b){
    if(a<b){
        return -1;
    } else if(a>b){
        return 1;
    } else {
        return 0;
    }
}

var hMain = lc.Home.promotions.filter(function(item) {
  return (item.slot=='home_main');
});

hMain[0].items.map(function(item) {
  return item.comicId;
}).sort(compare);

# fallroot

이 문제를 낸 이유는 콘텐츠팀에서 입력한 데이터에 오류가 있어서 찾아야 할 때가 종종 있기 때문입니다. 그러면 홈페이지로 들어가 개발자 콘솔을 열고 현재 데이터를 찾을 때가 많은데 이 문제와 같은 검색을 할 경우가 잦아서 익숙해지시라 낸 문제입니다.

일단 compare 함수는 사용할 필요가 없어요. 만약 명시적으로 저렇게 비교하고 싶으면 아래와 같이 하면 되고요.

Array.sort(function(a, b) {
    return a - b;
});

나머지는 잘 했네요. each, map, filter, reduce 등의 열거형 자료를 다루는 함수는 몸에 익숙해지는 게 좋아요.

lc.Home.promotions
    .filter(function(p) {return p.slot == 'home_main'})[0]
    .items.map(function(i) {return i.comicId})
    .sort()
    .toString()

추가로 Array#sort 함수의 기본 비교는 어떤 데이터형으로 하는 지 알아보세요. 문자열, 숫자를 비교할 때 각각 어떻게 해야 하는지도요.