言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

JavaScript辞典

  1. トップページ
  2. JavaScript辞典
  3. 配列.push() / pop() / shift() / unshift()

配列.push() / pop() / shift() / unshift()

対応: ES3(ECMAScript 1999)

配列の末尾や先頭に要素を追加・削除するメソッドです。『push()』『pop()』は末尾、『unshift()』『shift()』は先頭を操作します。

構文

// 末尾に要素を追加します。
配列.push(要素1, 要素2, ...);

// 末尾の要素を削除して返します。
var removed = 配列.pop();

// 先頭に要素を追加します。
配列.unshift(要素1, 要素2, ...);

// 先頭の要素を削除して返します。
var removed = 配列.shift();

メソッド一覧

メソッド概要
push(要素)配列の末尾に1つ以上の要素を追加し、追加後の配列の長さを返します。
pop()配列の末尾の要素を削除し、削除した要素を返します。空の配列に対して呼び出すと『undefined』が返されます。
unshift(要素)配列の先頭に1つ以上の要素を追加し、追加後の配列の長さを返します。
shift()配列の先頭の要素を削除し、削除した要素を返します。空の配列に対して呼び出すと『undefined』が返されます。

サンプルコード

sample_push.js
// パターン1: 基本操作(push / pop / unshift / shift)
var members = ["桐生一馬", "真島吾朗"];

// 末尾に要素を追加します。
members.push("秋山駿");
console.log(members); // 『桐生一馬,真島吾朗,秋山駿』と出力されます。

// 末尾の要素を削除します。
var last = members.pop();
console.log(last); // 『秋山駿』と出力されます。
console.log(members); // 『桐生一馬,真島吾朗』と出力されます。

// 先頭に要素を追加します。
members.unshift("錦山彰");
console.log(members); // 『錦山彰,桐生一馬,真島吾朗』と出力されます。

// 先頭の要素を削除します。
var first = members.shift();
console.log(first); // 『錦山彰』と出力されます。
console.log(members); // 『桐生一馬,真島吾朗』と出力されます。

// パターン2: pushの戻り値(追加後の配列の長さ)
var party = ["冴島大河"];
var newLength = party.push("秋山駿", "品田辰雄");
console.log(newLength); // 『3』と出力されます。追加後の長さです。
console.log(party); // 『冴島大河,秋山駿,品田辰雄』と出力されます。

// パターン3: スタック(後入れ先出し)の実装
var stack = [];
stack.push("桐生一馬");
stack.push("真島吾朗");
stack.push("錦山彰");
console.log(stack.pop()); // 『錦山彰』と出力されます。最後に追加したものが出ます。
console.log(stack.pop()); // 『真島吾朗』と出力されます。
console.log(stack.length); // 『1』と出力されます。

// パターン4: キュー(先入れ先出し)の実装
var queue = [];
queue.push("桐生一馬");
queue.push("真島吾朗");
queue.push("秋山駿");
console.log(queue.shift()); // 『桐生一馬』と出力されます。最初に追加したものが出ます。
console.log(queue.shift()); // 『真島吾朗』と出力されます。
console.log(queue.length); // 『1』と出力されます。
[ '桐生一馬', '真島吾朗', '秋山駿' ]
秋山駿
[ '桐生一馬', '真島吾朗' ]
[ '錦山彰', '桐生一馬', '真島吾朗' ]
錦山彰
[ '桐生一馬', '真島吾朗' ]
3
[ '冴島大河', '秋山駿', '品田辰雄' ]
錦山彰
真島吾朗
1
桐生一馬
真島吾朗
1

概要

これら4つのメソッドは配列の末尾と先頭の要素を操作する最も基本的なメソッドです。『配列.push()』と『配列.pop()』は末尾を、『配列.unshift()』と『配列.shift()』は先頭を操作します。いずれも元の配列を直接変更する破壊的メソッドです。

『配列.push()』は複数の要素をカンマ区切りで一度に追加でき、戻り値は追加後の配列の長さです。一方『配列.pop()』は引数を取らず、削除した要素そのものを返します。スタック(後入れ先出し)のデータ構造を実現する際に、この2つのメソッドの組み合わせが活用されます。

配列の途中にある要素を追加・削除したい場合は『配列.splice()』を使用してください。

対応ブラウザ

Chrome Chrome
49 以降
Firefox Firefox
57 以降
Safari Safari
18 以降
Edge Edge
80 以降
11 以前 ×
IE IE
11 以降
4.5 以前 ×
Opera Opera
48 以降
3 以前 ×
iOS Safari iOS Safari
18 以降
Android Browser Android Browser
37 以降
Chrome Android Chrome Android
36 以降
17 以前 ×
Firefox Android Firefox Android
79 以降
3 以前 ×

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。