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 설명 : 기준값과 인자값이 먼저 오느냐 안오느냐를 판단해주는 메서드