栈的特征是后入先出(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 }};自己测试了一下,可以正常使用。但是不知道这样写有什么我意向不到的坑么?
添加回答
举报
0/150
提交
取消