JavaScriptでスタックの要素をクリアする方法
JavaScriptでシンプルなスタッククラスを考えてみましょう。スタックは「後入れ先出し(LIFO: Last In, First Out)」という特性を持つ基本的なデータ構造で、最後に追加された要素が最初に取り出されます。
スタッククラスの基本実装
class Stack {
constructor(maxSize) {
// maxSizeが指定されていない場合はデフォルト値を設定
if (isNaN(maxSize)) {
maxSize = 10;
}
this.maxSize = maxSize; // スタックの値を格納する配列を初期化
this.container = [];
}
// 開発中に中身を確認するためのメソッド
display() {
console.log(this.container);
}
// 配列が空かどうかをチェック
isEmpty() {
return this.container.length === 0;
}
// 配列が満杯かどうかをチェック
isFull() {
return this.container.length >= this.maxSize;
}
push(element) {
// スタックが満杯かどうか確認
if (this.isFull()) {
console.log("Stack Overflow!");
return;
}
this.container.push(element);
}
pop() {
// 空かどうか確認
if (this.isEmpty()) {
console.log("Stack Underflow!");
return;
}
this.container.pop();
}
peek() {
if (this.isEmpty()) {
console.log("Stack Underflow!");
return;
}
return this.container[this.container.length - 1];
}
}ここでisFull関数は、コンテナの長さがmaxSize以上であるかどうかを判定して結果を返します。isEmpty関数は、コンテナのサイズが0であるかどうかをチェックします。また、pushとpopの各関数は、それぞれスタックへの要素の追加と削除を行うために使用されます。
CLEAR操作の追加
このセクションでは、このクラスにCLEAR操作を追加していきます。スタックの中身をクリアするのは非常に簡単で、コンテナに空の配列を再代入するだけで実現できます。
clear() {
this.container = [];
}動作確認
この関数が正しく動作しているかどうかは、以下のコードで確認できます。
let s = new Stack(2); s.push(10); s.push(20); s.display(); s.clear(); s.display();
出力結果
上記のコードを実行すると、次のような出力が得られます。
[10, 20] []
このように、clear()メソッドを呼び出す前にはコンテナに[10, 20]という2つの要素が格納されていましたが、呼び出し後には空の配列[]になっていることがわかります。
補足:clearメソッドの別の実装方法
空の配列を再代入する以外にも、this.container.length = 0;とすることで配列の中身だけを削除する方法もあります。この方法の場合、同じ配列オブジェクトへの参照が保持されるため、他の場所でその配列を参照している場合にも対応できます。用途に応じて使い分けるとよいでしょう。
-
JavaScriptで配列の要素を同じ配列内に複製する方法
JavaScriptでは、concat()メソッドとsort()メソッドを組み合わせることで、既存の配列の要素を同じ配列内に複製することができます。ここでは、実際に動作するサンプルコードを使って、その手順をわかりやすく解説します。 コード例 以下は、配列の要素を同じ配列内に複製するためのコード例です。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <meta name="viewport" cont
-
JavaScriptでスタックを実装する方法【サンプルコード付きで解説】
スタック(Stack)は、最後に追加した要素が最初に取り出される「LIFO(Last In, First Out)」方式の基本的なデータ構造です。本記事では、JavaScriptを使ってスタックを実装する方法を、ブラウザ上で実際に動作するサンプルコードとともにわかりやすく解説します。 スタックの基本操作 push:スタックの一番上に新しい要素を追加します。 pop:スタックの一番上から要素を取り出して削除します。要素がない場合はアンダーフローとして扱います。 display:スタック内に格納されているすべての要素を表示します。 サンプルコード 以下は、JavaScriptでスタックを実装し