这是我的Que类,但不是很精通对象,因此获取对象的大小和元素对我不起作用
class Queue{
// Array is used to implement a Queue
constructor(){
this.items = {};
this.count = 0;
}
// enqueue(item)
enqueue(element){
// adding element to the queue
this.items.push(element);
this.count++;
}
// dequeue()
dequeue(){
// removing element from the queue
// returns underflow when called
// on empty queue
if(this.isEmpty())
return "Underflow";
this.count--;
return this.items.shift();
}
// front()
front(){
// returns the Front element of
// the queue without removing it.
if(this.isEmpty())
return "No elements in Queue";
return this.items[0];
}
// isEmpty()
isEmpty(){
// return true if the queue is empty.
return this.items.length == 0;
}
// peek()
peek(){
return this.items[this.count]
}
size(element){
return this.count;
}
show(){
var result = '';
var i=this.count-1;
for(i; i>=0; i--){
result += this.items[i] +' ';
}
return result;
}
}
像size(),show()和isEmpty()之类的方法不起作用? 他们返回的是不确定的。
答案 0 :(得分:1)
您的代码中的小错误。只需将对象文字更改为项目的数组文字即可。 this.items = []
class Queue{
// Array is used to implement a Queue
constructor(){
this.items = []; //the problem is resolved
this.count = 0;
}
// enqueue(item)
enqueue(element){
// adding element to the queue
this.items.push(element);
this.count++;
}
// dequeue()
dequeue(){
// removing element from the queue
// returns underflow when called
// on empty queue
if(this.isEmpty())
return "Underflow";
this.count--;
return this.items.shift();
}
// front()
front(){
// returns the Front element of
// the queue without removing it.
if(this.isEmpty())
return "No elements in Queue";
return this.items[0];
}
// isEmpty()
isEmpty(){
// return true if the queue is empty.
return this.items.length == 0;
}
// peek()
peek(){
return this.items[this.count]
}
size(element){
return this.count;
}
show(){
var result = '';
var i=this.count-1;
for(i; i>=0; i--){
result += this.items[i] +' ';
}
return result;
}
}
let q = new Queue();
console.log(q.isEmpty())
console.log(q.size())
console.log(q.show());
答案 1 :(得分:0)
首先,您要威胁项目,例如它是否是数组,但是您将其声明为任何类型的对象。 2,当您调用size函数时,返回以下更好的方法可能是:items.length。 最后,您现在可以从每种用法中删除count变量。
祝你好运。