Здравствуйте, вот код :
class Queue {
constructor() {
this.queue = [];
}
enqueue(data) {
this.queue.unshift(data);
}
dequeue() {
return this.queue.pop()
}
isEmpty() {
return this.queue.length === 0
}
peek() {
return this.queue[this.queue.length - 1]
}
}
class PriorityQueue extends Queue {
constructor() {
super();
}
enqueue(data, p) {
this.queue.unshift({data: data, p: p});
}
dequeue(index = null) {
if (index) {
const item = this.queue[index];
this.queue.splice(index, 1);
return item
}
return this.queue.pop()
}
extractMax() {
const priorityArr = this.queue.map(obj => obj.p);
const maxItems = this.queue.filter(obj => obj.p === Math.max(...priorityArr));
return maxItems.length === 1 ? maxItems[0] : maxItems
}
getMax() {
return Math.max(...this.queue.map(obj => obj.p))
}
}
const priorityQueue = new PriorityQueue();
priorityQueue.enqueue('Первый элемент', 5);
console.log(priorityQueue.queue);
console.log(priorityQueue.dequeue(0));
В первом console log`e объект остается в списке, но его нельзя просмотреть и длина массива равна 0. Я не совсем понимаю почему объект исчезает до вызова функции удаления?