JavascriptのPriorityQueueクラス
例
class PriorityQueue { constructor(maxSize) { // Set default max size if not provided if (isNaN(maxSize)) { maxSize = 10; } this.maxSize = maxSize; // Init an array that'll contain the queue values. this.container = []; } // Helper function to display all values while developing display() { console.log(this.container); } // Checks if queue is empty isEmpty() { return this.container.length === 0; } // checks if queue is full isFull() { return this.container.length >= this.maxSize; } enqueue(data, priority) { // Check if Queue is full if (this.isFull()) { console.log("Queue Overflow!"); return; } let currElem = new this.Element(data, priority); let addedFlag = false; // Since we want to add elements to end, we'll just push them. for (let i = 0; i < this.container.length; i++) { if (currElem.priority < this.container[i].priority) { this.container.splice(i, 0, currElem); addedFlag = true; break; } } if (!addedFlag) { this.container.push(currElem); } } dequeue() { // Check if empty if (this.isEmpty()) { console.log("Queue Underflow!"); return; } return this.container.pop(); } peek() { if (isEmpty()) { console.log("Queue Underflow!"); return; } return this.container[this.container.length - 1]; } clear() { this.container = []; } } // Create an inner class that we'll use to create new nodes in the queue // Each element has some data and a priority PriorityQueue.prototype.Element = class { constructor(data, priority) { this.data = data; this.priority = priority; } };
-
JavaScriptのcontinueステートメント
継続ステートメントは、特定の条件が発生した場合に1回の反復をジャンプするために使用されます。条件が満たされた場合、その反復はスキップされ、次の反復から続行されます。 以下は、JavaScriptでcontinueステートメントを実装するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=devic
-
JavaScriptのnew.target
new.targetは、関数コンストラクターがnewキーワードを使用して呼び出されたかどうかを実行時に判別できるようにするメタプロパティです。 以下は、JavaScriptのnew.targetのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=