配列

Loading

今回は配列の作成方法と利用方法について解説します。
本来であればMap、Setなどのコレクションオブジェクトの一種なので、その記事で解説したほうが良いのですが、利用頻度が高いため早めに説明しておきます。

目次

配列とは

配列とは値のまとまりをリストとして保持するデータのことです。
オブジェクトの場合は、プロパティと値のペアを複数格納しますが、配列の場合は添字(インデックスと言います)と値のペアを複数格納します。
そのさい、インデックスは自動的に付与されるので、明示的に記述する必要はなく便利です。

まずは基本中の基本、一次元配列について押さえましょう。

一次元配列

配列を作成するためには、カンマ(,)で区切った複数の値を[ ]で囲みます。

const 配列 = [ 値1, 値2, 値3,・・・ ]

この [ ] を配列リテラルと呼びます。

配列に格納した値を取得したい場合は、変数のうしろに [ ] をつけて、インデックスを指定します。

// 配列の作成
const fruits = [ 'banana', 'orange', 'grape' ];

// 先頭の値を取得
console.log( fruits[0] );
> banana

// 二番目の値を取得
console.log( fruits[1] );
> orange

// 三番目の値を取得
console.log( fruits[2] );
> grape

上の例を見ると、先頭の配列を取得するためには「0」を指定していることが分かると思います。
配列のインデックスは1からではなく0から始まることに注意しておきましょう。

配列の値を変更したい場合は、インデックスを指定して値を再代入します。

fruits[1] = 'apple';
console.log( fruits[1] );
> apple

配列の長さを知りたい場合は、「配列.length」で取得できます。

// fruits配列の長さを取得
let length = fruits.length;

console.log( length );
> 3

多次元配列

配列は入れ子にすることができます。
例えば、2週間分の気温を配列データにすることを考えてみましょう。
下記のコードは一週間区切りで気温データをまとめて、各週の気温データを配列にする例です。

// 一週間区切りで気温データをまとめる
// temperature[0] が一週目の気温データ
// temperature[1] が二週目の気温データ
// 気温データは月曜始まりとする
const temperature = [
  [15, 18, 17, 20, 20, 21, 22, 21],
  [17, 14, 18, 11, 15, 20, 18, 19]
];

// 一週目の水曜日の気温
console.log( temperature[0][2] );
> 17

// 二週目の土曜日の気温
console.log( temperature[1][5] );
> 18

このように入れ子になった配列のデータを取得するためには [ ] を連続でつなげて記述します。

もうすこし丁寧に見ていきましょう。
temperature配列には、2つの配列データが格納されています。
そのため、最初の [ ] でこの2つの配列データのどちらを取得するかを指定しています。

temperature[0] // 一週目のデータを表した配列
> [15, 18, 17, 20, 20, 21, 22, 21]

temperature[1] // 二週目のデータを表した配列
> [17, 14, 18, 11, 15, 20, 18, 19]

この最初の [ ] で取得したデータも配列です。
そこへ二つ目の [ ] を重ねることで、最初の [ ] で取得した配列のデータにアクセスできるわけです。

// temperature[0] は [15, 18, 17, 20, 20, 21, 22, 21] という配列データ
 
temperature[0][0] // 一週目のデータの1番目のデータ
> 15

temperature[0][1] // 一週目のデータの2番目のデータ
> 18

多次元配列は少しややこしく感じますが、慣れてしまえばそれほど難しくありません。
基本の使い方をしっかり押さえておきましょう。

配列に格納できるデータ

配列には全てのデータ型を格納できます。
また、一つの配列内でデータ型が違う値も格納することができます。

const arr = [ '太郎', 25, true ]; // 文字列、数値、真偽値が混ざった配列

長さの異なる複数の配列やオブジェクトも格納できます。

const arr = [
  [15, 20, 21, 22, 21],
  [17, 14, 18],
  { name: '太郎', age: 25 }
];

しかし、配列の中のデータ型は一つの種類に揃えることがプログラマーの間では一般的です。
その方がプログラマーにとってわかりやすく、バグを抑えやすくなるからです。
複数のデータ型を一つにまとめたければオブジェクトを利用しましょう。

配列の要素の追加・削除

配列に要素を追加したり削除したりすることができます。
以下、4種類の操作を覚えておきましょう。

配列の末尾に要素を追加 – push

配列の末尾に要素を追加したい場合は「配列.push」を使います。

const fruits = [ 'banana', 'orange', 'grape' ];

// 末尾に'apple'を追加
fruits.push('apple');

console.log( fruits );
> [ 'banana', 'orange', 'grape', 'apple' ]

配列の末尾の要素を削除 – pop

配列の末尾の要素を削除したい場合は「配列.pop」を使います。

const fruits = [ 'banana', 'orange', 'grape' ];

// 末尾の'grape'を削除
fruits.pop();

console.log( fruits );
> [ 'banana', 'orange' ]

このpopで削除した要素を別の変数に格納することもできます。

const fruits = [ 'banana', 'orange', 'grape' ];

// 削除した要素をvalに格納
let val = fruits.pop();

console.log( val );
> grape

配列の先頭に要素を追加 – unshift

配列の先頭に要素を追加したい場合は「配列.unshift」を使います。

const fruits = [ 'banana', 'orange', 'grape' ];

// 先頭に'apple'を追加
fruits.unshift('apple');

console.log( fruits );
> [ 'apple', 'banana', 'orange', 'grape' ]

配列の先頭の要素を削除 – shift

配列の先頭の要素を削除したい場合は「配列.shift」を使います。

const fruits = [ 'banana', 'orange', 'grape' ];

// 先頭の'banana'を削除
fruits.shift();

console.log( fruits );
> [ 'orange', 'grape' ]

このshiftで削除した要素を別の変数に格納することもできます。

const fruits = [ 'banana', 'orange', 'grape' ];

// 削除した要素をvalに格納
let val = fruits.shift();

console.log( val );
> banana

まとめ

今回は配列について説明しました。

次回は演算子の基本について説明していきます。