1. 空配列のときは 作品はありません を返す
  2. 要素が 1 つのときはその要素を返す
  3. 要素が 2 つのときは 2 つめを返す
  4. 要素が 3 つのときは 3 つめを返す
コース一覧
JavaScript基礎文法:処理を組み立てる
配列のきほん

JavaScript基礎文法:処理を組み立てる

if・switch による条件分岐、配列とループ、関数とコールバック、オブジェクトを順に組み立てる全 33 レッスン(525 分)の基礎文法コースです。FizzBuzz、作品リスト、関数への整理、作品データの構造化を通して、入力から結果を返す処理を自分で分解して書きます。DOM 操作は次のコースで扱います。

1
条件分岐
01. if 文の基本15分
02. if / else if / else で段階判定15分
03. switch 文で値を一覧から選ぶ15分
04. 条件を組み合わせる20分
05. FizzBuzz で複数条件を組み立てる20分
06. つくる 時間帯で挨拶を変える20分
07. 第1章まとめクイズ10分
2
配列とループ
01. 配列のきほん15分
02. 要素を足す・取り除く15分
03. for ループで合計を求める15分
04. for-of で配列を走査する15分
05. while で条件を満たす間くり返す15分
06. break と continue でループを制御する15分
07. つくる 作品リストを一覧にする20分
08. 第2章まとめクイズ10分
3
関数
01. 関数宣言15分
02. アロー関数15分
03. デフォルト引数15分
04. 早期 return でネストを浅くする15分
05. 変数のスコープ15分
06. コールバック関数15分
07. forEach で配列をまわす15分
08. つくる 処理を関数に整理する20分
09. 第3章まとめクイズ10分
4
オブジェクト
01. オブジェクトのきほん18分
02. オブジェクトで複数の値を返す16分
03. const と参照18分
04. ?. で安全に取り出す16分
05. 分割代入18分
06. スプレッド構文18分
07. find と includes で探す16分
08. つくる 作品データを構造化する25分
09. 第4章まとめクイズ10分

配列のきほん

配列とインデックス
解説

このレッスンで分かること

  • 角カッコ [] で、複数の値をひとまとめにした配列を作れます
  • 番号は 0 から始まり、要素数は works.length で分かります

変数を 3 つ用意するのはつらい

山田 太郎さんのプロフィールサイトには、作品が 3 つあります。変数だけで持とうとすると、こうなります。

JavaScript

const work1 = "プロフィールサイト"; const work2 = "自己紹介カード"; const work3 = "スキル一覧の表";

3 つならまだ書けます。ですが作品が 10 個に増えたら work10 まで並べることになり、しかも「全部の作品名を順番に出して」と言われた瞬間に手が止まります。work1 から work10 までを機械的にたどる方法が無いからです。

配列は、複数の値に順番を付けて 1 つの入れ物にまとめる仕組みです。角カッコの中に、値をカンマで区切って並べて作ります。

JavaScript

const works = ["プロフィールサイト", "自己紹介カード", "スキル一覧の表"]; const views = [120, 80, 45]; const empty = [];

変数はたった 1 つになりました。作品が 100 個でも、入れ物は works のままです。empty のように中身が何も無い配列も作れます。これを空配列と呼び、これから値を足していくときの出発点になります。配列に入っている値のことは要素と呼びます。

番号は 1 ではなく 0 から始まる

配列から値を取り出すときは、変数名のうしろに角カッコを付けて番号を書きます。この番号をインデックスと呼びます。

JavaScript

console.log(works[0]); // => プロフィールサイト console.log(works[2]); // => スキル一覧の表 console.log(works[3]); // => undefined

いちばん大事なのは、インデックスが 1 ではなく 0 から始まることです。1 番目の要素は works[0] です。頭では分かっていても指が works[1] と書いてしまうので、慣れるまでは表で確かめながら書いてください。

インデックス値呼びかた
0"プロフィールサイト"1 番目の要素
1"自己紹介カード"2 番目の要素
2"スキル一覧の表"3 番目の要素
3undefined存在しない

無い番号を触ってもエラーにならない

表の最後の行に注目してください。要素は 3 つしか無いので works[3] は存在しません。それでも JavaScript はエラーを出さず、undefined を返します。止まってくれないぶん、間違いに気付くのが遅れます。文字列とつないで「作品は undefined です」と表示されて、そこで初めて異変に気付く、というのがよくある流れです。取り出した値が undefined だったら、まずインデックスを疑ってください。

要素が何個あるかは length で分かります。要素が 3 つなら最後のインデックスは 2 なので、length - 1 が常に末尾を指します。

JavaScript

console.log(works.length); // => 3 console.log(works[works.length - 1]); // => スキル一覧の表

works[2] と番号を直接書くと、作品が増えた瞬間に別の要素を指してしまいます。works.length - 1 と書いておけば、要素が何個でも必ず末尾です。

解説

空配列に works[works.length - 1] を書くと works[-1] になり、undefined が返ります。ここでもエラーにはなりません。空のときにどうするかは、自分で works.length === 0 を確かめて決める必要があります。

よくある間違い

  • 末尾を取るのに length をそのまま使う — works[works.length] は必ず存在しない番号なので undefined です。- 1 を忘れないでください
  • length にカッコを付ける — works.length() は TypeError になります。length は関数ではなく、配列が持っている値そのものです

要件

  1. 関数名は lastWorkTitle、引数は配列 works 1 つ、戻り値は文字列
  2. 末尾の要素は works[works.length - 1] で取り出すこと (works[2] のように番号を直接書かない)
  3. works.length が 0 のときは文字列 "作品はありません" を返すこと

入出力例

lastWorkTitle([]) → "作品はありません" lastWorkTitle(["プロフィールサイト"]) → "プロフィールサイト" lastWorkTitle(["自己紹介カード","スキル一覧の表"]) → "スキル一覧の表" lastWorkTitle(["プロフィールサイト","自己紹介カード","スキル一覧の表"]) → "スキル一覧の表"

ヒント

先に空配列かどうかを判定してしまうと、そのあとは要素があることを前提に書けます

末尾のインデックスは `works.length - 1` です。`works[works.length]` は必ず `undefined` になります

`works.length` はプロパティなのでカッコは付けません。`works.length()` と書くと `TypeError` になります

生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/08/05·更新 2026/08/26

関連レッスン

  • 要素を足す・取り除く

    作った配列はあとから中身を増やしたり減らしたりできます。末尾と先頭に対する 4 つの操作を覚えます。

  • for ループで合計を求める

    `for` 文の 3 つの式を学び、配列の要素をインデックスで順番に取り出して合計する関数を書きます。

  • for-of で配列を走査する

    配列の全要素を先頭から順に処理する専用の構文が `for-of` です。インデックスを書かずに要素そのものを受け取れます。

  • while で条件を満たす間くり返す

    回数ではなく条件でくり返しを制御する構文が `while` です。終わりが事前に決まらない処理を書けるようになります。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • 配列サイズ固定の同型データの集まり
  • 素数1 と自分自身でしか割り切れない自然数
  • 変数データに名前をつけて参照する仕組み
  • インデックスDB 検索を速くする索引
  • JavaScriptWeb で動的な振る舞いを担う言語
  • 関数処理に名前を付けて再利用できる単位
  • 引数位置引数=順番で渡す。
  • 戻り値呼び出し元への返答を表す点線矢印
main.js
学習モード
エディタを読み込んでいます

メモ

配列のきほん

⌘S で保存