文字列に任意に配列[プログラマレベル1]

4824 ワード

質問する
https://programmers.co.kr/learn/courses/30/lessons/12915
問題を解く
コード1
sortでインデックスが使えるなんて...これはsortを用いた良い例のようだ.しっかり煮込みましょう.
function solution(strings, n) {
    return strings.sort((a, b)=>{
        if(a[n]>b[n]) return 1;
        else if(a[n]<b[n]) return -1;
        else{
            if(a>b) return 1;
            else if(a<b) return -1;
            else return 0;
        }
    });
}
コード2
return strings.sort((s1, s2) => s1[n] === s2[n] ? s1.localeCompare(s2) : s1[n].localeCompare(s2[n]));
localCompareの方法で問題を解決する斬新な方法もある.初めて見た斬新な方法…!
sortが負数の時、お互いの位置を変えないで、正数の時、よく考えて、お互いの位置を変えます!(0の場合は異なる要素を揃えますが、互いに置き換えません)
localCompare
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare