This question already has an answer here:
Double-Queue Code needs to be reduced
                                
                                    (1个答案)
                                
                        
                                6年前关闭。
            
                    
我有什么办法可以通过使用指针来缩短这段代码?
我需要使一个类具有与给定数组类几乎相同的功能,即unshift,shift,push和pop,但名称不同。

var makeDeque = function()
{
    var a= [], r=new Array(a);

    length = r.length=0;

    pushHead=function(v)
    {
        r.unshift(v);
    }

    popHead=function()
    {
        return r.shift();
    }

    pushTail=function(v)
    {
        r.push(v);
    }

    popTail=function()
    {
        return r.pop();
    }

    isEmpty=function()
    {
        return r.length===0;
    }

    return this;
};

(function() {
   var dq = makeDeque();

   dq.pushTail(4);
   dq.pushHead(3);
   dq.pushHead(2);
   dq.pushHead("one");
   dq.pushTail("five");
   print("length " + dq.length + "last item: " + dq.popTail());
   while (!dq.isEmpty())
      print(dq.popHead());
})();


输出应为

长度5最后一项:五个

2
3
4

谢谢!

最佳答案

也许我过于简化了,但是为什么不将所需的额外方法添加到Array原型并直接调用呢?

关于javascript - javascript中的指针和数组类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18544265/

10-11 13:34