JavaScriptの配列を操作するメソッドの中でも、push()
とpop()
は特に使用頻度が高いものです。今回は、これらのメソッドの使い方をまとめていきたいと思います。
目次 非表示
push()
メソッドは、配列の末尾に新しい要素を追加するためのメソッドです。追加した結果、配列の新しい長さ(要素数)が返されます。
// 配列を定義
let sweets = ['ドーナツ', 'ケーキ'];
// 配列の末尾に要素を追加
let newLength = sweets.push('クッキー');
console.log(sweets); // ["ドーナツ","ケーキ","クッキー"]
console.log(newLength); // 3(新しい配列の長さ)
push()
は複数の要素を同時に追加することも可能です。
let drinks = ['カフェオレ', 'カプチーノ'];
drinks.push('カフェラテ', 'エスプレッソ');
console.log(drinks); // ["カフェオレ","カプチーノ","カフェラテ","エスプレッソ"]
pop()
メソッドは、配列の末尾の要素を削除し、その削除した要素を返すメソッドです。
let numbers = [1, 2, 3, 4, 5];
// 配列の末尾の要素を削除
let lastElement = numbers.pop();
console.log(numbers); // [1, 2, 3, 4]
console.log(lastElement); // 5(削除された要素)
push()
とpop()
を使うことで、スタック(後入れ先出し)のデータ構造を簡単に実装できます。
See the Pen Untitled by tones (@tonescodedesign) on CodePen.
let stack = [];
// データを追加(プッシュ)
stack.push('データ1');
stack.push('データ2');
stack.push('データ3');
console.log(stack); // ['データ1', 'データ2', 'データ3']
// データを取り出し(ポップ)
let removedData = stack.pop();
console.log(stack); // ['データ1', 'データ2']
console.log(removedData); // 'データ3'
ブラウザの履歴のように、push()
で新しいページを追加し、pop()
で前のページに戻るような処理ができます。
See the Pen Untitled by tones (@tonescodedesign) on CodePen.
let history = [];
// 新しいページを訪問すると、履歴に追加
function visitPage(page) {
history.push(page);
console.log(`訪問したページ: ${page}`);
console.log(`現在の履歴: ${history.join(' -> ')}`);
}
// 戻るボタンのような動作
function goBack() {
if (history.length > 1) { // 履歴が1ページ以上ある場合のみ戻る
let lastPage = history.pop(); // 最後のページを削除
let currentPage = history[history.length - 1]; // 現在のページを取得
console.log(`戻る: ${lastPage} -> 現在のページ: ${currentPage}`);
} else {
console.log('履歴がありません、戻れません');
}
}
// ページを訪問
visitPage('ホーム');
visitPage('商品一覧');
visitPage('商品詳細');
// 戻る
goBack(); // 商品詳細 -> 商品一覧
goBack(); // 商品一覧 -> ホーム
goBack(); // 履歴がありません
配列が空の状態で pop()
を実行するとundefined
が返ります。
let emptyArray = [];
console.log(emptyArray.pop()); // undefined
これらのメソッドは元の配列を変更するため、副作用に注意が必要です。特に、関数の中で配列を操作する場合は、予期しない変更が起こらないように注意しましょう。
大量のデータを扱う場合、pop()
による頻繁な削除がパフォーマンスに影響を与えることがあります。pop()
の代わりに slice()
を使って新しい配列を作成する方法も検討してみましょう。
push()
とpop()
は配列の末尾に要素を追加・削除する便利なメソッドです。特にスタックの実装などに役立ちます。ただし、以下の点には注意しましょう。
push()
は複数の要素を同時に追加できますpop()
は要素を削除し、その値を返します(空の配列ではundefined
になる)- 配列を直接変更するため、副作用に注意しましょう
- 大量のデータ処理には別の方法も検討しましょう