JavaScript创建栈的思路?

发布于 2022-09-06 09:55:14 字数 805 浏览 15 评论 0

栈的特征是后入先出(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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

耀眼的星火 2022-09-13 09:55:15

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

意中人 2022-09-13 09:55:15

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文