在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/人工智能  HTML/ JavaScript創(chuàng)建棧的思路?

JavaScript創(chuàng)建棧的思路?

棧的特征是后入先出(LIFO),我認(rèn)為用數(shù)組的length屬性就可以很好構(gòu)建了。代碼如下(使用了閉包):

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

自己測(cè)試了一下,可以正常使用。但是不知道這樣寫有什么我意向不到的坑么?

回答
編輯回答
挽歌

push和pop就可以實(shí)現(xiàn),怎么弄這么復(fù)雜

2017年12月28日 08:33
編輯回答
吃藕丑

數(shù)組本身就能當(dāng)棧用,pushpop方法都有原生方法,感覺(jué)沒(méi)必要自己寫

2017年4月16日 18:27