문자열 내 마음대로 정렬하기

김현민·2021년 9월 3일
0

Algorithm

목록 보기
58/126
post-thumbnail

내 코드

function solution(strings, n) {
    var answer = strings;
    
    answer.sort(function(a,b){
        if(a.charAt(n) === b.charAt(n)){
            if(a > b) return 1;
            if(a< b) return -1;
        }
        if(a.charAt(n) > b.charAt(n)) return 1;
        if(a.charAt(n) < b.charAt(n)) return -1;
        
    return 0;
})
    
    return answer;
}

단순히 sort() 메서드만 사용했었다가, 기준설정 후 정렬하려니 당황스러웠다.
n 번째 인덱스를 참조해서 정렬하고, 다시 합치고,...
그러다가 Array MDN문서를 참조하고 콜백함수로 기준을 설정해 정렬하는 방법이 나와있었다.

다른사람의 풀이

return strings.sort((s1, s2) => s1[n] === s2[n] ? s1.localeCompare(s2) : s1[n].localeCompare(s2[n]));

localeComapre()라는 메서드를 처음봤는데, .. 흠 자주 쓰이는지는 의문이다

localeCompare 설명 : 기준값과 인자값이 먼저 오느냐 안오느냐를 판단해주는 메서드

profile
Jr. FE Dev

0개의 댓글