JavaScript | 配列から要素を削除する(pop, shift)

JavaScript JavaScript
スポンサーリンク

では、プログラミング初心者が「配列の要素削除」を段階的に理解して身につけられるように
レベル別(初級・中級・上級)に問題+解答+解説を紹介します。


初級レベル(基本メソッドの使い方)

問題1:末尾の要素を削除しよう(pop())

次の配列から、最後の要素を削除してみよう。削除された要素も表示してください。

let fruits = ['apple', 'orange', 'grape'];
JavaScript

✅ 解答

let fruits = ['apple', 'orange', 'grape'];
let removed = fruits.pop();
console.log(removed);  // 'grape'
console.log(fruits);   // ['apple', 'orange']
JavaScript

💡 解説

  • pop()配列の最後 の要素を削除し、その削除された要素を返します。
  • 空の配列に使ってもエラーにはならず、undefined を返します。

問題2:先頭の要素を削除しよう(shift())

次の配列から、最初の要素を削除してみよう。削除された要素も表示してください。

let animals = ['dog', 'cat', 'rabbit'];
JavaScript

✅ 解答

let animals = ['dog', 'cat', 'rabbit'];
let first = animals.shift();
console.log(first);    // 'dog'
console.log(animals);  // ['cat', 'rabbit']
JavaScript

💡 解説

  • shift()配列の先頭 を削除します。
  • 残りの要素が左に詰められ、インデックスが変わります。
  • pop() と似ているけど、削除する位置が逆(先頭)です。

問題3:配列を空にしてみよう(length プロパティ)

次の配列 colors の中身を全部削除して、空の配列にしてください。

let colors = ['red', 'green', 'blue', 'yellow'];
JavaScript

✅ 解答

let colors = ['red', 'green', 'blue', 'yellow'];
colors.length = 0;
console.log(colors);  // []
JavaScript

💡 解説

  • length プロパティを直接 0 にすると、すべての要素が削除 されます。
  • 一番簡単に配列をリセットできる方法です。

中級レベル(真ん中・範囲を削除)

問題4:真ん中の要素を削除しよう(splice())

次の配列から 'melon' を削除してください。

let fruits = ['apple', 'melon', 'peach'];
JavaScript

✅ 解答

let fruits = ['apple', 'melon', 'peach'];
fruits.splice(1, 1);
console.log(fruits);  // ['apple', 'peach']
JavaScript

💡 解説

  • splice(開始位置, 削除数)
    → index 1(2番目)の要素 'melon' を1個削除。
  • 元の配列が直接書き換わります。

問題5:範囲をまとめて削除してみよう(splice())

次の配列から、真ん中の 'b''c' の2つを削除してください。

let letters = ['a', 'b', 'c', 'd', 'e'];
JavaScript

✅ 解答

let letters = ['a', 'b', 'c', 'd', 'e'];
letters.splice(1, 2);
console.log(letters); // ['a', 'd', 'e']
JavaScript

💡 解説

  • index 1 から 2 個削除(つまり 'b''c' が消える)。
  • splice は配列の「真ん中の要素削除」に最適。

問題6:削除しながら別の値を入れよう(置換)

次の配列で、 'b''c''x''y' に置き換えてください。

let arr = ['a', 'b', 'c', 'd'];
JavaScript

✅ 解答

let arr = ['a', 'b', 'c', 'd'];
arr.splice(1, 2, 'x', 'y');
console.log(arr);  // ['a', 'x', 'y', 'd']
JavaScript

💡 解説

  • splice(開始位置, 削除数, 追加要素...)
  • 'b','c' を削除し、その場所に 'x','y' を挿入。
  • 削除と挿入を同時にできるのが便利。

上級レベル(元配列を残したまま削除・応用)

問題7:元配列を壊さずに削除(filter())

次の配列 [1,2,3,4,5] から 3 を取り除いた新しい配列を作ってください。
元の配列は変更しないように。

let nums = [1,2,3,4,5];
JavaScript

✅ 解答

let nums = [1,2,3,4,5];
let newNums = nums.filter(n => n !== 3);
console.log(newNums); // [1,2,4,5]
console.log(nums);    // [1,2,3,4,5]
JavaScript

💡 解説

  • filter() は条件に合う要素だけを残して新しい配列を作る
  • 元の配列は変化しない(「イミュータブル操作」)。

問題8:特定のインデックスを削除して新しい配列を作る(slice()+concat())

次の配列から、index 2 の 'c' を削除した新しい配列を作ってください。

let letters = ['a','b','c','d','e'];
JavaScript

✅ 解答

let letters = ['a','b','c','d','e'];
let newLetters = letters.slice(0,2).concat(letters.slice(3));
console.log(newLetters); // ['a','b','d','e']
console.log(letters);    // ['a','b','c','d','e']
JavaScript

💡 解説

  • slice(開始, 終了) で配列の一部を取り出す。
  • 'c' の前と後を取り出して、concat() でつなげる。
  • 元配列は変更されません。

問題9:配列を削除しすぎないように安全に扱う

次のコードは何が起こるでしょう?理由も説明してください。

let items = [];
let result = items.pop();
console.log(result);
console.log(items);
JavaScript

✅ 解答・解説

undefined
[]
JavaScript
  • 空の配列に pop() を使うと、削除する要素がないので undefined を返す。
  • エラーにはならないが、削除も行われない。
    → 「空チェック」をしてから削除するのが安全。

まとめ:レベル別に覚えるコツ

レベル主なメソッド特徴配列が変わる?
初級pop(), shift(), length末尾・先頭・全削除✅ 変わる
中級splice()真ん中・範囲削除・置換✅ 変わる
上級filter(), slice()新しい配列を作って削除❌ 元は変わらない
タイトルとURLをコピーしました