0
0

More than 1 year has passed since last update.

Javascript Sortの順番

Posted at

JavaScriptで平仮名、カタカナ、漢字、数字、アルファベットが混ざっている配列にSortをかけた際はどのような順序になるのか、検証しました。(正直単純な配列なのでただsortをかけるだけでいいのですが、連想配列の際にも使えるようなコードで一旦記述しています。)

      const dummyArray = ['ひらがな', 'カタカナ', '漢字', '123', 'abc']

      dummyArray.sort((a, b) => {
        if (a > b) {
          return 1
        } else {
          return -1
        }
      })

      console.dir('結果' + JSON.stringify(dummyArray))

結果:
result.png

また「ヴ」はカタカナの中の最後尾に来てしまうようで、ウの後に入れるには無理やりこうするしかありませんでした。

      dummyArray.sort((a, b) => {
        //最初の文字が「ヴ」だったら最初の文字のみ「ウン」に置き換えて比較する
        const aName = a[0] === '' ? a.replace('', 'ウン') : a
        const bName = a[0] === '' ? b.replace('', 'ウン') : b

        if (aName > bName) {
          return 1
        } else {
          return -1
        }
      })

こうすると、一応「ウ」の後にくるのですが、万が一要素の名前で「ウン」から始まるものがあれば「ヴ」よりも後に来てしまう可能性があるので、もう少しいい方法があるといいな、という感じです。。
また今回は一旦aNameに置き換えていますが、比較用に置き換えているだけなので元の要素の名前は変わらないです。

アルファベットや数字のみでsortをかけている資料はぼちぼちあるのですが、色々な要素でかけているものはあまりないので備忘録でした。閲覧ありがとうございました。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0