function solution(strings, n) {
return strings.sort((a,b)=>{
if(a[n] === b[n]){
return(a>b)-(b>a)
}
else{
return (a[n]>b[n])-(b[n]>a[n])}
});
}
sort
에는 매개변수로 compareFunction
이 들어간다. 보통 다른 언어에서는 sort
는 정수는 정수대로 정렬을 해주는데 Javascript에서는 문자열로 변경을 한 뒤에 정렬을 하기 때문에 9와 80을 정렬하면 80이 먼저오고 그 뒤에 9가 오게된다. 그래서 이 compareFunction
을 사용하는데 MDN에서는 이렇게 알려준다.
if
문을 활용해 반환값을 1과 -1로 돌려줌으로써 정렬을 시도한다. JS에서는 true=1, false=0 이기 때문에 문자열을 비교하면서 return에서 비교한 값을 반환해준다.