どうも、つよぽんです!
今回は、JavaScriptの多次元配列を解説します。
多次元配列とは配列のもう1つ先に進んだ概念で、「配列の中に配列がセットされているデータ構造」のことです。
言葉だけではイメージが掴みづらいと思うので、この記事では多次元配列の中でも使われることが多い「2次元配列」を図とサンプルコードを交えて解説しています。
今回の記事は次のような方に向けて書きました。
- 多次元配列って何?
- 多次元配列の作成方法を知りたい
- 多次元配列内の特定の値を取得・更新する方法を知りたい
今回の記事は以下の学習コンテンツのスライドを詳しく解説した記事となります。以下の記事と合わせて読むことでより理解度を深めていただけるかと思います。

それでは次の内容で話を進めていきます。
- JavaScriptの多次元配列とは
- JavaScriptの多次元配列の作成方法
- JavaScriptの多次元配列内の特定の値を取得・更新する方法
目次
JavaScriptの多次元配列とは

この章では、「JavaScriptの多次元配列とは何か?」について解説します。
多次元配列とは、「配列の中に配列がセットされているデータ構造」のことです。
以下の画像は多次元配列の内部構造をイメージとして描き出したものです。
上の画像を見てわかるとおり、「変数array」は配列です。
そして、配列である「変数array」の中に次のような3つの配列がセットされています。
- 1つ目の配列には「1, 2, 3」という値がセットされている
- 2つ目の配列には「4, 5, 6」という値がセットされている
- 3つ目の配列には「7, 8, 9」という値がセットされている
このような「配列の中に配列」があるデータ構造が「多次元配列」といいます。
上の図は2次元配列の例になります。
その他にも「3次元配列」、「4次元配列」とずっと続いていきますが、違いは配列がどれだけ入れ子に入っているかだけです。
- 2次元配列 : 「①配列」の中に「②配列」がある
- 3次元配列 : 「①配列」の中に「②配列」があって、「②配列」の中にも「③配列」がある
- 4次元配列 : 「①配列」の中に「②配列」があって、「②配列」の中にも「③配列」がある。そして、「③配列」の中にも「④配列」がある。
2次元配列、3次元配列、4次元配列などを1つの言葉でまとめたものが「多次元配列」となります。
JavaScriptの多次元配列の作成方法

この章では、「JavaScriptの多次元配列の作成方法」について解説します。
多次元配列を作る書き方は以下の画像にまとめたとおりです。
前回の記事でも解説したとおり、通常の配列を作るときは「[]」を使います。

多次元配列は、この「[]」の中に別の配列(「[]」)を作れば良いだけなので、「[ [] ]」の形となります。
以下の画像の赤枠内ではこの「[ [] ]」を使って多次元配列を作成したサンプルコードとなります。
上の画像で使っているサンプルコードは以下のリンクから直接確認できます。
JavaScriptの多次元配列内の特定の値を取得・更新する方法

この章では、「多次元配列内の特定の値の取得・更新する方法」を解説します。
基本的な考え方は通常の配列のときと同じで、以下の記事でも解説している「インデックス番号」を使って特定の値を取得・更新できます。

取得方法
多次元配列内の特定の値を取得する方法を説明する前に、通常の配列の特定の値を取得する方法をふりかえります。
例えば通常の配列で、1番最初に保存されている値を取得したい場合は「配列[0]」のような形式で値を取得できることを前回記事で解説しました。
このときの「0」はインデックス番号と呼び、先頭から「0番目」、「1番目」、「2番目」と「0」から始まります。
ここで多次元配列に話を戻します。
まず「[ [‘値1’, ‘値2’], [‘値3’, ‘値4’], [‘値5’, ‘値6’] ]」という2次元配列があるとします。
この時1つ目の値である「 [‘値1’, ‘値2’]」を取得したい場合は、通常の配列と同じように「配列[0]」とすることで取得できます。
そして、「配列[0]」は「 [‘値1’, ‘値2’]」という配列ですので、ここで「‘値1’」を取得した場合は、「配列[0][0]」とすれば取得できます。
以下の画像は、ここまで説明してきた「多次元配列内の特定の値の取得方法」をまとめたものになります。
上の画像で使っているサンプルコードは以下のリンクから直接確認できます。
更新方法
多次元配列内の特定の値の更新の方法は、前の項目で説明した「取得方法」を理解していればすぐに理解できます。
値の取得では「配列[0][0]」とすることで、2次元配列の1つ目の配列内の1つ目の値を取得できることを説明しました。
更新の場合は、この「配列[0][0]」に対して代入を行えば良いだけです。
つまり「配列[0][0] = ‘新しい値’」とするだけです。
さきほど例に使った2次元配列のデータを使って、「配列[0][0] = ‘新しい値‘」を実行すると次のようになります。
- 更新前
- 「[ [‘値1‘, ‘値2’], [‘値3’, ‘値4’], [‘値5’, ‘値6’] ]」
- 更新後
- 「[ [‘新しい値‘, ‘値2’], [‘値3’, ‘値4’], [‘値5’, ‘値6’] ]」
以下の画像は、ここまで説明してきた「多次元配列内の特定の値の更新方法」をまとめたものになります。
上の画像で使っているサンプルコードは以下のリンクから直接確認できます。
まとめ
今回の話をまとめると次のとおりです。
- 多次元配列とは、入れ子になった配列のことである(配列の中に配列がある構造)
- JavaScriptで多次元配列を作るときは「[ [‘値1’, ‘値2’], [‘値3’, ‘値4’], [‘値5’, ‘値6’] ]」のような形式で作る
- 多次元配列内の特定の値を取得する方法は「配列[0][0]」で取得できる
- 多次元配列内の特定の値を更新する方法は「配列[0][0] = ‘新しい値’」で更新できる
今回の内容は以下の記事内のスライドの補足資料として作成しました。スライドの全部を確認したい方は以下の記事も参照して頂けたらと思います。


Webエンジニアになりたい人向けに、MENTAにて『【やる気満々な方向け】未経験からのWebエンジニア育成コース』というプランを用意しております。
このプランでは、主に「【学習コンテンツ】Web開発」を使って学習を進めていただきます。

誰向けのプラン?
こちらのプランは次のような方に向けて作られています。
- Progateやドットインストールで一通り学習したけど、次に何をすればよいかわからない
- Webエンジニアになるまでの学習プランがあると助かる
- 学習していてわからないところが出てきたときに質問したい
- コードレビューして欲しい
- オンライン講義に参加したい
- 学習した内容をアウトプットした際に、フィードバックがもらえたら嬉しい
- おすすめの学習教材を知りたい
- Webフロントエンド・バックエンドを学習したい
- フルスタックエンジニアになりたい
- 文系出身で今までプログラミングをしてこなかったけど、将来Webエンジニアになりたい
- 将来フリーランスになることを目指している
プラン内容は?
『【やる気満々な方向け】未経験からのWebエンジニア育成コース』では次のことを行っております。
- Web白熱教室の学習コンテンツをメインに、指定した教材を使って学習する (学習プランに沿って学習を進めていただきます。)
- 学習コンテンツの課題をこなしたあとは、僕にコードレビュー依頼を投げていただくことで、コードを添削する(課題クリア後は、引き続き学習プランの内容を続けていただきます。)
- プラン契約者が参加するSlackグループにて質問し放題
- Slack内にある「アウトプットの場」チャンネルにて、学習したことをアウトプットをしていただくことで、それに対しフィードバックをする (学習内容のアウトプットは復習にもなるため、アウトプットすることを強く推奨します。)
- 画面共有を使ったオンライン講義 (オンライン講義は録画して、いつでもふり返れるようにしています。(オンライン講義動画(ウェビナー動画)))
- 学習プラン以外の内容に対しての質疑応答 (内容によっては回答できないものもありますが、まずは気軽に質問していただけたらと思います。)
- 不定期で行うオフラインでの勉強会に参加(僕自身が東京住みのため、東京・もしくは東京近郊で開催します)
その他注意点
1人で対応していることもあるため、対応が難しくなった場合は急遽募集を終了する可能性もあることをご了承ください。
プラン契約者数が35人に達したら値上げする予定です
現在の値段は10000円です。
つまり、「月の飲み会3回くらいの金額」となります。
飲み会に行く代わりに、学習時間を優先すると考えれば自己投資としてはだいぶリーズナブルかと思います。
「1日1回、カフェでコーヒー1杯分くらいの値段(約330円)」で以下の環境が手に入るとイメージして頂けたらと思います。
- コードを添削してもらえる
- 学習したことのアウトプットに対してフィードバックしてもらえる
- いつでも質問出来る
- 週1のオンライン講義に参加できる
- 過去のオンライン講義動画を好きな時間に復習できる(いつでも閲覧可能)
- 不定期で行うオフラインでの勉強会に参加できる(僕自身が東京住みのため、東京・もしくは東京近郊で開催します)
- 自分の住まいの近場のメンティーさん同士で集まって、オフラインで勉強会を開くのも可能(初めて開催する場合は事前に僕に連絡をいただけたらと思います)
ただ、プラン契約者数が35人に達したら15000円に値上げする予定です。
(2019年2月13日現在のプラン契約者数は27人)
値上げする理由は次のとおりです。
- このプランを始めた当初(2018年9月)と比べて、学習コンテンツ(スライド・課題・動画)が充実してきた
- このプランに参加していただいているメンティーさんの中から、「Web未経験から学習を初めて2~3ヵ月くらいで案件獲得までこぎつけることができた」という実績ができた
- 学習サポート(コードレビューや質疑応答など)を1人で行っており、人数が増えすぎるとサポートに支障が出てくるため、値上げという形で参加ハードルをあげた
(人数を制限することによりサポートの質を維持するため)
今後も契約者が増えたり、学習コンテンツがさらに充実していった場合は段階的に料金改定させていただく予定です。
契約した時点の金額がずっと継続される
現在、学習プランを提供しているプラットフォームである「MENTA」の性質上、契約した時点の金額は変わることがありません。
つまり、今後プラン料金が15000円、20000円と上がったとしても、月々の料金は申し込んだときの料金となるので、10000円のときに契約した場合は、受講中はずっと10000円で受講することができます。
詳しく話を聞いてみたい方は
以下のいずれかでメッセージをいただけたらと思います^^
プラン内容については以下のリンク先からも確認することが出来ます^^