JavaScriptのArrayクラスは、リスト形式でデータを扱うための強力なツールです。この記事では、Arrayクラスの基本的な使い方から高度な機能までを紹介し、効率的な配列操作のコツを解説します。
目次
Arrayクラスの基本操作
配列の作成
配列は、Array
クラスのコンストラクタを使って作成できますが、一般的にはリテラルを使用します。
let arr1 = new Array(); // 空の配列
let arr2 = new Array(5); // 長さ5の配列
let arr3 = new Array(1, 2, 3, 4, 5); // 要素を指定して配列を作成
let arr4 = [1, 2, 3, 4, 5]; // リテラルで配列を作成
Arrayクラスの基本的なメソッド
配列への要素追加と削除
配列の末尾に要素を追加するにはpush
、先頭に追加するにはunshift
を使用します。
let arr = [1, 2, 3];
arr.push(4); // [1, 2, 3, 4]
arr.unshift(0); // [0, 1, 2, 3, 4]
要素を削除するにはpop
とshift
を使用します。
arr.pop(); // [0, 1, 2, 3] -> 4が削除される
arr.shift(); // [1, 2, 3] -> 0が削除される
要素の検索
配列内の要素を検索するためのメソッドも豊富に用意されています。
let arr = [1, 2, 3, 4, 5];
arr.includes(3); // true
arr.indexOf(3); // 2
arr.lastIndexOf(3); // 2 (最初に見つかったインデックスを返す)
要素の削除と置換
splice
メソッドは要素を削除、置換、または追加するために使用されます。
let arr = [1, 2, 3, 4, 5];
arr.splice(2, 1); // [1, 2, 4, 5] -> インデックス2から1つの要素を削除
arr.splice(2, 0, 3); // [1, 2, 3, 4, 5] -> インデックス2に3を追加
arr.splice(2, 1, 9); // [1, 2, 9, 4, 5] -> インデックス2の要素を9で置換
Arrayクラスの高度なメソッド
配列のコピーと結合
配列のコピーにはslice
、結合にはconcat
を使用します。
let arr = [1, 2, 3];
let copy = arr.slice(); // [1, 2, 3]
let newArr = arr.concat([4, 5]); // [1, 2, 3, 4, 5]
要素の変換
map
メソッドは、配列の各要素を変換して新しい配列を返します。
let arr = [1, 2, 3];
let squared = arr.map(x => x * x); // [1, 4, 9]
フィルタリング
filter
メソッドは、条件を満たす要素のみを含む新しい配列を作成します。
let arr = [1, 2, 3, 4, 5];
let evens = arr.filter(x => x % 2 === 0); // [2, 4]
要素の集計
reduce
メソッドは、配列の要素を集計して単一の値を生成します。
let arr = [1, 2, 3, 4, 5];
let sum = arr.reduce((acc, x) => acc + x, 0); // 15
Arrayクラスのその他の便利なメソッド
find
とfindIndex
特定の条件を満たす最初の要素を見つけるにはfind
、そのインデックスを見つけるにはfindIndex
を使用します。
let arr = [1, 2, 3, 4, 5];
let firstEven = arr.find(x => x % 2 === 0); // 2
let firstEvenIndex = arr.findIndex(x => x % 2 === 0); // 1
every
とsome
配列の全要素が条件を満たすかを確認するにはevery
、いずれかの要素が条件を満たすかを確認するにはsome
を使用します。
let arr = [1, 2, 3, 4, 5];
let allPositive = arr.every(x => x > 0); // true
let someEven = arr.some(x => x % 2 === 0); // true
まとめ
JavaScriptのArrayクラスは、データの操作と処理を効率的に行うための豊富なメソッドを提供しています。基本的な使い方から高度なテクニックまでを理解し、適切に活用することで、より効果的なコードを書くことができます。配列操作の基本を押さえた上で、各メソッドの特性を理解し、適材適所で利用していきましょう。