この記事ではTypeScriptでの配列ソートについて紹介します。
記事を通して、以下のことを学べるようになります。
それでは、早速学んでいきましょう!
Array.prototype.sort()
の基本Array.prototype.sort()
はJavaScriptの配列のメソッドで、配列をその場でソートします。
デフォルトでは要素が文字列としてソートされます。
const fruits = ['banana', 'apple', 'cherry']
fruits.sort()
console.log(fruits)
このコードでは、fruits配列がアルファベット順にソートされるため、['apple', 'banana', 'cherry']
という結果が得られます。
注意点として、数値の配列の場合は意図しない順番となることがあります。
let numbers = [21, 3, 100]
numbers.sort()
console.log(numbers)
この結果は [100, 21, 3]
となり、文字列としてのソート順となります。
だから、数値のソートを正しく行うためにはカスタム関数が必要です。
配列をソートする際、元の配列を変更せずに新しい配列を作成したい場合もあります。
sort()
メソッドは元の配列を変更するので、元の配列を保持しつつ新しい配列を作成する方法を紹介します。
const numbers = [3, 1, 2]
const sortedNumbers = [...numbers].sort()
console.log(sortedNumbers)
console.log(numbers)
このコードでは、sortedNumbers
は [1, 2, 3]
としてソートされ、元の numbers
配列は変更されません。
[...numbers]
のようにスプレッド構文を使用することで非破壊的にソートができますね!
数値の配列をソートする場合、デフォルトのソート機能では意図した結果が得られないことがあります。
そんな時はソート用の関数を使用します。
const numbers = [10, 2, 15]
numbers.sort((a, b) => a - b)
console.log(numbers)
この方法では [2, 10, 15]
のように数値の昇順にソートされます。
この関数がどのように動作しているかというと、 a - b
の結果が正の場合、a
は b
の後に配置されるというルールに基づいています。
ちなみに、降順にソートしたい場合は b - a
を使えばOKです!
次に、オブジェクトの配列を特定のキーの値でソートする方法を紹介します。
type User = {
id: number
name: string
}
const users: User[] = [
{ id: 3, name: 'Alice' },
{ id: 1, name: 'Bob' },
{ id: 2, name: 'Charlie' }
]
users.sort((a, b) => a.id - b.id)
console.log(users)
このコードでは、id
の値に基づいて users
配列がソートされます。
オブジェクトのソート、意外と簡単にできますよね。
今回はTypeScriptでの配列ソートの方法をについて紹介しました!
ソートは基本的な操作ですが、その使い方によっては日常のコーディングでの利便性を高めてくれます。
日常のコーディングで活用してみてくださいね!
TypeScriptの短絡評価の使い方「&&」「||」「??」の解説
TypeScriptのタイマー関数setTimeoutとsetIntervalの使い方
TypeScriptの多次元配列の使い方についてわかりやすく解説
TypeScriptでのタプルの使い方と実践テクニックを解説
TypeScriptのimport typeをわかりやすく解説
TypeScriptコメントアウトの使い方 完全ガイド
TypeScriptのオブジェクトとプロパティの存在チェック完全ガイド
TypeScriptで即時関数を使う方法を解説!基本から実践的な使い方まで
TypeScriptで知っておきたい整数・安全整数判定の正しい使い方