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
    }
};

自己测试了一下,可以正常使用。但是不知道这样写有什么我意向不到的坑么?

阅读 2.4k
2 个回答

数组本身就能当栈用,pushpop方法都有原生方法,感觉没必要自己写

push和pop就可以实现,怎么弄这么复杂

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题