JavaScript カスタム sort() 関数

Migel Hewage Nimesha 2024年2月15日
  1. JavaScript の sort() メソッド
  2. カスタム sort() メソッドを使用して、JavaScript で数値の配列をソートする
JavaScript カスタム sort() 関数

この記事では、JavaScript 配列に対する並べ替え操作について説明します。

JavaScript の sort() メソッド

sort() メソッドは、配列内の要素を並べ替えるために使用されます。 デフォルトでは、このメソッドは要素を昇順でソートします。

通常、このメソッドは要素の位置を変更して元の配列を変更します。 さらに、sort() メソッドは入力配列要素を文字列にキャストし、文字列比較を行って要素を並べ替えます。

数値の配列を入力すると、それらの数値は最初に文字列値に変換されてから比較されます。 数値の配列を作成し、sort() メソッドを使用して並べ替えましょう。

コード例:

let numericArray = [100, 3, 66, 23, 200, 500];
numericArray.sort();
console.log(numericArray);

出力:

数字の配列をソート

これは期待どおりに注文されていません。 これを修正するには、sort() メソッドをカスタマイズする必要があります。

カスタム比較関数を引数として渡すことができます。 この比較関数は 2つの引数を受け入れ、渡された引数に適用される規則によって並べ替え順序が決定されます。

カスタム sort() メソッドを使用して、JavaScript で数値の配列をソートする

数値の配列をソートするには、次に示すように比較関数を実装する必要があります。

compare(a, b) 関数からの戻り値が 0 未満の場合、sort() メソッドは b の前に a を配置します。

逆の場合、ba の前に配置されます。 compare(a, b) 関数が 0 を返すたびに、ab の位置は変わりません。

したがって、以下に示すように、カスタム比較関数を sort() メソッドに渡すことができます。

コード例:

let numericArray = [100, 3, 66, 23, 200, 500];
numericArray.sort(function(a, b) {
  if (a > b) return 1;
  if (a < b) return -1;
  return 0;
});
console.log(numericArray);

出力:

独自の sort() メソッドを使用して数値の配列をソート

予想どおり、配列は適切にソートされました。 これは、ユーザーが順序を決定できる JavaScript sort() メソッドの非常に便利な機能です。

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

関連記事 - JavaScript Sort