JavaScript创建栈的思路?
栈的特征是后入先出(LIFO),我认为用数组的length属性就可以很好构建了。代码如下(使用了闭包):
let stackMaker = function () {
let dataStore = [];
let push = function (item) {
dataStore.push(item)
};
let pop = function () {
if (!dataStore.length) return undefined;
let result = dataStore[dataStore.length - 1];
dataStore.length -= 1;
return result
};
let peek = function () {
if (!dataStore.length) return undefined;
return dataStore[dataStore.length - 1]
};
let clear = function () {
dataStore.length = 0
};
let length = function () {
return dataStore.length
};
return {
push,
pop,
peek,
clear,
length
}
};
自己测试了一下,可以正常使用。但是不知道这样写有什么我意向不到的坑么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
数组本身就能当栈用,
push
和pop
方法都有原生方法,感觉没必要自己写push和pop就可以实现,怎么弄这么复杂