求助:创建一个优先队列 未通过

求助:创建一个优先队列 未通过
0

代码如下:
function PriorityQueue () {
this.collection = [];
this.printCollection = function() {
console.log(this.collection);
};
this.enqueue = function(arr) {
this.collection.push(arr);
this.printCollection();
return arr;
};
this.findMaxPriority = function() {
if(this.collection.length==0){
return false;
}
else if(this.collection.length==1){
return 0;
}
else {
var index = 0;
for(var i=1;i<this.collection.length;i++) {
if(this.collection[i][1]<this.collection[index][1]){
index = i;
}
}
return index;
}
}
this.dequeue = function() {
if (this.collection.length>0) {
this.collection.splice(this.findMaxPriority(),1);
console.log(this.collection);
return this.collection;
}
};
this.size = function() {
return this.collection.length;
};
this.isEmpty = function() {
return this.size()===0;
};
}
var test = new PriorityQueue();
test.enqueue([“Alan”,1]);
test.enqueue([“Bob”,1]);
test.enqueue([“Cyber”,0]);
test.enqueue([“Dylan”,0]);
test.dequeue();//Cyber 出队
test.dequeue();//Dylan 出队
test.dequeue();//Alan 出队
本地测试结果如下:
image
确实是高优先级先出,同级先进先出,为什么不能通过呢?

未满足题目要求:
dequeue 方法应该返回元素内容,无需返回它的优先级。

谢答,这确实是个失误,但是我改了之后依然无法通过。

返回元素的内容应该是 return,而不是 console

1赞

谢谢大佬,通过了,以后我会注意这一点了。 :smiley: