【JAVASCRIPT】JavaScriptの配列について
配列とは
配列は複数の値を一つの変数に格納できるデータ構造です。配列内のそれぞれの値は「要素」と呼ばれ、インデックス(配列の位置)でアクセスできます。インデックスは0から始まります。
配列の宣言と初期化する方法
空の配列を宣言する
- let array = [];
値を含む配列を宣言する
- let array = [1, 2, 3, 4, 5];
Arrayコンストラクタを使用して宣言する
- let array = new Array();
- let arrayWithValues = new Array(1, 2, 3, 4, 5);
Array コンストラクタを使用する場合の注意点
Array コンストラクタは、引数が1つだけの場合、それを配列の長さとして解釈します。そのため、例えば new Array(3) とすると、3つの空の要素を持つ配列が作成されます。
引数が2つ以上の場合、それらは配列の要素として解釈されます。
- let singleValueArray = new Array(5);
- console.log(singleValueArray); // [ <5 empty items> ]
- console.log(singleValueArray.length); // 5
- let multipleValuesArray = new Array(5, 10, 15);
- console.log(multipleValuesArray); // [5, 10, 15]
配列の操作について
要素のアクセス
- let array = [1, 2, 3, 4, 5];
- console.log(array[0]); // 1
- console.log(array[3]); // 4
要素の変更
- let array = [1, 2, 3, 4, 5];
- array[2] = 10;
- console.log(array); // [1, 2, 10, 4, 5]
要素の追加
末尾に追加:push
- let array = [1, 2, 3];
- array.push(4);
- console.log(array); // [1, 2, 3, 4]
先頭に追加:unshift
- let array = [1, 2, 3];
- array.unshift(0);
- console.log(array); // [0, 1, 2, 3]
要素の削除
末尾から削除:pop
- let array = [1, 2, 3];
- array.pop();
- console.log(array); // [1, 2]
先頭から削除:shift
- let array = [1, 2, 3];
- array.shift();
- console.log(array); // [2, 3]
任意の位置の要素の削除と追加:splice
- let array = [1, 2, 3, 4, 5];
- array.splice(2, 1); // インデックス2の位置から1つの要素を削除
- console.log(array); // [1, 2, 4, 5]
- array.splice(2, 0, 3); // インデックス2の位置に値3を追加
- console.log(array); // [1, 2, 3, 4, 5]
その他の配列メソッド
lengthプロパティ:配列の要素数を取得
- let array = [1, 2, 3, 4, 5];
- console.log(array.length); // 5
indexOfメソッド:指定した値の最初のインデックスを取得
- let array = [1, 2, 3, 4, 5];
- console.log(array.indexOf(3)); // 2
- console.log(array.indexOf(6)); // -1(存在しない場合)
forEachメソッド:配列の各要素に対して関数を実行
- let array = [1, 2, 3, 4, 5];
- array.forEach(function(element) {
- console.log(element);
- });
- // 1
- // 2
- // 3
- // 4
- // 5
mapメソッド:配列の各要素に対して関数を実行し、新しい配列を返す
- let array = [1, 2, 3, 4, 5];
- let newArray = array.map(function(element) {
- return element * 2;
- });
- console.log(newArray); // [2, 4, 6, 8, 10]
配列の例
- // 配列の宣言と初期化
- let fruits = ['Apple', 'Banana', 'Orange'];
- // 要素のアクセス
- console.log(fruits[1]); // Banana
- // 要素の変更
- fruits[2] = 'Grape';
- console.log(fruits); // ['Apple', 'Banana', 'Grape']
- // 要素の追加
- fruits.push('Mango');
- console.log(fruits); // ['Apple', 'Banana', 'Grape', 'Mango']
- // 要素の削除
- fruits.pop();
- console.log(fruits); // ['Apple', 'Banana', 'Grape']
- // 配列の長さ
- console.log(fruits.length); // 3
配列を利用した実用的な例
買い物リストの管理プログラム
このプログラムでは、買い物リストにアイテムを追加したり、アイテムを削除したり、リストを表示したりします。
- // 初期の買い物リストを宣言
- let shoppingList = ['Milk', 'Bread', 'Eggs'];
- // リストを表示する関数
- function displayList() {
- console.log("Shopping List:");
- shoppingList.forEach(function(item, index) {
- console.log(index + 1 + ": " + item);
- });
- }
- // アイテムをリストに追加する関数
- function addItem(item) {
- shoppingList.push(item);
- console.log(item + " has been added to the list.");
- }
- // アイテムをリストから削除する関数
- function removeItem(index) {
- if (index >= 0 && index < shoppingList.length) {
- let removedItem = shoppingList.splice(index, 1);
- console.log(removedItem + " has been removed from the list.");
- } else {
- console.log("Invalid index. Please enter a valid index.");
- }
- }
- // プログラムの実行例
- // 初期のリストを表示
- displayList();
- // アイテムを追加
- addItem('Butter');
- displayList();
- // アイテムを削除(インデックスは0から始まることに注意)
- removeItem(2); // Eggsを削除
- displayList();
- // 無効なインデックスで削除を試みる
- removeItem(10); // 無効なインデックス
各関数の説明
1.displayList関数
現在の買い物リストを表示します。
forEachメソッドを使って、各アイテムとそのインデックスを出力しています。
2.addItem関数
リストに新しいアイテムを追加します。
pushメソッドを使って、新しいアイテムをリストの末尾に追加しています。
3.removeItem関数
指定したインデックスのアイテムをリストから削除します。
spliceメソッドを使って、指定したインデックスのアイテムを削除しています。
削除するインデックスが有効でない場合、エラーメッセージを表示します。
実行例の説明
初期のリスト([‘Milk’, ‘Bread’, ‘Eggs’])を表示します。
‘Butter’をリストに追加し、再度リストを表示します。
インデックス2(3番目)のアイテム(’Eggs’)をリストから削除し、再度リストを表示します。
無効なインデックス(10)で削除を試みると、エラーメッセージが表示されます。