配列
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
の中からname
がJiro
である生徒を検索し、その年齢を表示させてください。