配列とは
複数の値を連番をつけて保存しておくデータの集合体のことを配列といいます。 通常一つの変数には一つの値しか入れることはできませんが、配列を使うと一つの変数に複数の値を入れて管理することができます。主に『同じカテゴリーやグループに属する複数の値を管理』する際に使用されます。
配列を作る:配列リテラル
[] ← 配列リテラル
配列リテラル[]を代入することで配列を作成。変数に配列リテラルを代入するとその変数は配列として扱われます。(配列管理変数)
配列は複数の値を管理するため、変数内に直接値を管理せず、アドレス先にある広い場所(実際はメモリ領域)に値を管理します。
配列関数「fruits」を使ってコンソールに出力すると「 [] 」が表示されます。
console.log('1回目の出力');
console.log(fruits);
console.log(fruits.length);
※まだ値を入れていない為、部屋も値もありません。
配列内の部屋数を調べる
変数名.length
配列はアドレス先に複数の値を管理します。複数の値は0から始まる連番の部屋(要素)に管理されます。今現在配列管理している部屋を調べるには「変数名.length」と記述します。
※下記のように記述
console.log('1回目の出力');
console.log(fruits);
console.log(fruits.length);
fruits[0] = 'いちご';
fruits[1] = 'みかん';
fruits[2] = 'りんご';
配列内の値を変更する:代入
変数の時と同じように値の入っている配列の部屋にさらに値を代入すると配列内の値を変更することができます。
console.log('3回目の出力');
console.log(fruits);
console.log(fruits.length);
console.log(fruits[0]);
console.log(fruits[1]);
console.log(fruits[2]);
↓ ↓ ↓
3回目の出力
3
いちご
メロン
りんご
連番ではない部屋番号を指定して部屋を作成した場合
変数areaに部屋番号「0」~「2」まで部屋ができている状態で部屋番号「4」を作成 して値を代入してみます。すると既存の部屋番号と新しい部屋番号の間の部屋番号「3」が自動生成され連番が維持されます。不要な部屋を作らないためにも部屋番号は指定しましょう。
'茨城',
'栃木',
'群馬'
];
areas[4] = '東京';
console.log('7回目の出力');
console.log(areas);
console.log(areas.length);
console.log(areas[0]);
console.log(areas[1]);
console.log(areas[2]);
console.log(areas[3]);
console.log(areas[4]);
↓ ↓ ↓
7回目の出力
Arrey(5)
5
茨城
栃木
群馬
undefined
東京
よくあるミス
fruits[0] = 'いちご';
fruits[1] = 'みかん';
fruits[2] = 'りんご';
console.log('1回目の出力');
console.log(fruits);
console.log(fruits.length);
console.log(fruits[0]);
console.log(fruits[1]);
console.log(fruits[2]);
(※)var fruits;←この記述がNG
var fruits=[];を記入しておかないといけない
※配列の機能を利用して、おみくじを作ろう!
多次元配列
配列の部屋に更に配列を入れて管理することを多次元配列と呼びます。グループ化した大量のデータを一つの変数で扱えるため便利です。
多次元配列は[]が入れ子になる
[60, 90], ←0番地:1人目の試験結果
[20, 50, 95], ←1番地:2人目の試験結果
[100], ←2番地:3人目の試験結果
]; console.log('2人目の試験結果');
console.log(score[1].length);
console.log(score[1][0]);
console.log(score[1][score[1].length-1]);
・1人目2回目の試験結果を90点から80点に修正
score[0][1] = 80;
console.log('1人目の試験結果を修正');
console.log(score[0]);
console.log(score[0].length);
console.log(score[0][0]);
console.log(score[0][1]);
※祝日を調べる!