猿问

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

    }

};

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


慕尼黑的夜晚无繁华
浏览 322回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答