メインコンテンツまでスキップ

配列

注記

JavaScript の配列は、他の言語とかなり異なる性質を持っています。他の言語の経験がある方は注意して読むようにしてください。

配列の生成

JavaScript における配列(Array)は、キーが数値であるオブジェクトです。配列リテラルを用いて生成します。

const myFriends = ["Taro", "Hanako", "Becky"];
document.write(myFriends[1]); // Hanako
document.write(myFriends.length); // 3

配列リテラルでは、[から]までの領域の中に、複数の値をコンマ区切りで記述します。各値には 0 から始まる整数が自動的にキーとして割り当てられます。キー名が数値となっているため、各要素(プロパティ)にアクセスするためには、ブラケット記法を使用する必要があります。つまり、myFriends.1という記法はエラーとなります。

['A', 'B', 'C']のようにして生成された配列は、{ 0: 'A', 1: 'B', 2: 'C' }というオブジェクトと似ていますが、異なる点もあります。そのひとつがlengthプロパティです。配列にはlengthプロパティが自動的に定義され、配列の長さを表します。

配列の要素を列挙する

for文を使用すると、配列の要素を列挙させることができます。

for (let i = 0; i < myFriends.length; i++) {
document.write(myFriends[i]);
}

lengthプロパティにより配列の要素数を取得することができるので、それを条件式の中で利用しましょう。

for文には、配列のようなオブジェクトの、全ての要素を列挙するための専用の記法が存在しています。for 〜 ofループです。

for (const myFriend of myFriends) {
document.write(myFriend);
}

for (const 変数 of 配列)とすることで、配列の各要素を変数に代入しながらループを回すことができます。なお、for 〜 ofループの中ではconstが使用できることに注意してください。

ネストされた配列

配列の要素には、任意の値を格納できます。当然のことながら、配列自体を配列の中に格納することもできます。このような配列を、多次元配列と呼びます。

const multidimensionalArray = [
[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
];
document.write(multidimensionalArray[1][2]); // 8

この場合、multidimensionalArray[1]の部分がまず評価され、[6, 7, 8, 9, 10]となります。続いて、[6, 7, 8, 9, 10][2]が評価され、8が表示されます。

オブジェクトと配列

配列の要素にオブジェクトを使用することもできます。以下は非常によく使用される例です。

const students = [
{ name: "Ichiro", age: 20 },
{ name: "Jiro", age: 19 },
{ name: "Saburo", age: 18 },
];
document.write(students[2].age); // 18

この場合、students[2]の部分がまず評価され、{ name: 'Saburo', age: 18 }となります。続いて、{ name: 'Saburo', age: 18 }.ageが評価され、18となります。

課題

for ~ ofループによりstudentsの中からnameJiroである生徒を検索し、その年齢を表示させてください。