.pop()方法删除元素,但返回undefined而不是元素本身.(JS栈实现)



我的函数是一个删除堆栈中间元素的递归函数。编码平台已经给出了栈的实现,这意味着我可以访问push()和pop()方法。

我想pop()直到到达中间位置,然后将弹出的元素推回去。

但是,如果我存储pop,它显示为未定义

如果我console.log这个pop调用,它返回undefined。

class Solution 
{
    solve(s,midEle) {
        let self = this;
        if(midEle===1){
            s.pop();
            return;
        }
        let temp = s.pop();
        self.solve(s,midEle-1);
        s.push(temp)
        return
    }
    //Function to delete middle element of a stack.
    deleteMid(s, sizeOfStack)
    {
        // code here
        const mid = Math.ceil((sizeOfStack+1)/2);
        this.solve(s,mid);
    
    }
}

这是因为您没有返回任何内容:

return;

javascript中,none的值为undefined。因此,上面的代码返回值undefined

要返回从数组中弹出的值,只需返回它:

var item = s.pop();
return item;

或更简单:

return s.pop();

相关内容

  • 没有找到相关文章