カテゴリ: JavaScript 更新日: 2025/08/05

JavaScriptの配列の並べ替え(sortメソッド)の基本とカスタマイズ

JavaScriptの配列の並べ替え(sortメソッド)の基本とカスタマイズ
JavaScriptの配列の並べ替え(sortメソッド)の基本とカスタマイズ

先生と生徒の会話形式で理解しよう

生徒

「先生、JavaScriptで配列の中身を並べ替えたいんですけど、どうやったらいいですか?」

先生

「配列を並べ替えるなら、sortメソッドを使います。これを使うと、文字や数字を簡単に順番に並べることができますよ。」

生徒

「でも、自分の好きな順番に並べることもできますか?」

先生

「もちろんです!基本の使い方から、カスタマイズの方法まで一緒に見ていきましょう!」

1. sortメソッドとは?基本的な使い方

1. sortメソッドとは?基本的な使い方
1. sortメソッドとは?基本的な使い方

sortメソッドは、JavaScriptの配列を並べ替えるための命令です。文字や数字の並び順を変えられます。

例えば、文字の配列をアルファベット順に並べ替えたいときは、次のように書きます。


let fruits = ["バナナ", "りんご", "みかん"];

fruits.sort();

console.log(fruits);

["みかん", "バナナ", "りんご"]

文字列はUnicodeという規則で順番が決まるため、この例では「みかん」が先に来ています。

2. 数字の配列をsortで並べ替えるときの注意点

2. 数字の配列をsortで並べ替えるときの注意点
2. 数字の配列をsortで並べ替えるときの注意点

数字の配列にsortを使うと、文字として順番を比較するので、期待と違う結果になることがあります。

例えば、数字の配列を並べ替えたときの例を見てみましょう。


let numbers = [10, 5, 100, 1];

numbers.sort();

console.log(numbers);

[1, 10, 100, 5]

このように、「10」が「5」よりも先に来ています。これは文字として順番を比べているためです。

なので、数字を正しく並べ替えるには「比較関数」というものを使います。

3. 比較関数で数字の並べ替えをカスタマイズする

3. 比較関数で数字の並べ替えをカスタマイズする
3. 比較関数で数字の並べ替えをカスタマイズする

sortメソッドは、並べ替えのルールを自分で決めるために「比較関数」という関数を使えます。この関数は2つの値を比べて、どちらが先か教えます。

数字を小さい順に並べたい場合は、次のように書きます。


let numbers = [10, 5, 100, 1];

numbers.sort(function(a, b) {
  return a - b;
});

console.log(numbers);

[1, 5, 10, 100]

この比較関数は、「a - b」の計算結果が0より小さいときはが前、0より大きいときはbが前、0のときは順番を変えないという意味です。

4. 比較関数で数字を大きい順に並べる方法

4. 比較関数で数字を大きい順に並べる方法
4. 比較関数で数字を大きい順に並べる方法

同じようにして、大きい順に並べたいときはとbを入れ替えて計算します。


let numbers = [10, 5, 100, 1];

numbers.sort(function(a, b) {
  return b - a;
});

console.log(numbers);

[100, 10, 5, 1]

これで数字を大きい順に並べることができました。

5. 文字列の並べ替えも比較関数でカスタマイズできる

5. 文字列の並べ替えも比較関数でカスタマイズできる
5. 文字列の並べ替えも比較関数でカスタマイズできる

文字列も比較関数で好きな順番に並べ替えられます。日本語やアルファベットの順番を正しく比較するために localeCompare という便利な関数を使います。


let fruits = ["バナナ", "りんご", "みかん"];

fruits.sort(function(a, b) {
  return a.localeCompare(b);
});

console.log(fruits);

["バナナ", "みかん", "りんご"]

localeCompare は、言葉の並べ替えに適した比較をしてくれます。

6. アロー関数で比較関数をもっと簡単に書く

6. アロー関数で比較関数をもっと簡単に書く
6. アロー関数で比較関数をもっと簡単に書く

JavaScriptでは、関数を短く書ける「アロー関数」という書き方があります。先ほどの数字の小さい順の比較関数は、こう書けます。


numbers.sort((a, b) => a - b);

簡単に書けて見やすいので慣れたらぜひ使ってみてください。

7. まとめの代わりに注意点

7. まとめの代わりに注意点
7. まとめの代わりに注意点

sortは元の配列を書き換えます。元のデータを残したい場合は、slice()メソッドで配列をコピーしてから使うのがおすすめです。


let numbers = [10, 5, 100, 1];
let sortedNumbers = numbers.slice().sort((a, b) => a - b);

console.log(numbers);
console.log(sortedNumbers);

[10, 5, 100, 1]
[1, 5, 10, 100]

元の配列は変わらず、新しい配列を並べ替えられます。

カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScript × ES6の連携まとめ!安全でモダンなJavaScript開発の鍵
New2
TypeScript
TypeScriptの型システムとは?静的型付けのメリットと基本
New3
JavaScript
JavaScriptの正規表現で繰り返し指定(* + ? {n,m})を学ぼう
New4
TypeScript
TypeScriptとESNextの連携を完全ガイド!最新機能を使いこなす設定と対応法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptの日時操作Tips!実務で役立つテクニック集
No.3
Java&Spring記事人気No3
TypeScript
TypeScriptでESLintとPrettierを導入!コード整形ルールを自動で統一する方法
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.5
Java&Spring記事人気No5
TypeScript
TypeScriptのif文の使い方を完全ガイド!初心者でもわかる条件分岐
No.6
Java&Spring記事人気No6
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptの正規表現で文字列を置換する方法(replaceメソッド)
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptで非同期イテレーター(for await of)を活用する