如何解决我的JavaScript实现堆栈中的Peek方法未定义
我已经在JS中实现了Stack数据结构的一个版本。
这是我的代码
class Stack {
constructor() {
this.stack = [];
};
push(item) {
return this.stack.push(item);
};
pop() {
return this.stack.pop();
};
peek() {
return this.stack[this.length - 1];
};
isEmpty() {
return this.length === 0;
};
getLength() {
return this.stack.length;
};
}
这里所有的东西都可以正常工作,除了peek方法。返回未定义。我不确定为什么。
这就是我的使用方式。
const stack = new Stack();
console.log(` The stack contains : ${stack.getLength()} items`);
stack.push(1);
stack.push(2);
console.log(`The stack contains : ${stack.getLength()} items`);
console.log(stack.peek());
这是输出
The stack contains : 0 items
The stack contains : 2 items
undefined
解决方法
您需要使用this.stack.length
而不是this.length
:
peek() {
return this.stack[this.stack.length - 1];
};
对于所有其他对this.length
的引用
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。