【发布时间】:2020-04-06 16:40:21
【问题描述】:
我对 JavaScript 和一般编程相当陌生。 我正在尝试使用一些代码来使用 push 和 Pop 反转数组。我知道我可以使用 Array.prototype.reverse() 但我想尝试一下。
这是我的问题
- 1) 为什么我在最后一行代码中未定义?自从我回来 阵列?
- 2) 为什么
ReverseStack(stack,reversed.push(stack.pop()))不是功能错误? - 3) 我怎样才能得到相同的结果但没有 使用第二个数组?仅使用推送和弹出
const stack = [];
const reversed = [];
stack.push("a");
stack.push("b");
stack.push("c");
stack.push("d");
stack.push("e");
stack.push("f");
ReverseStack = (stack, reversed) =>{
for(let i = 0; i <= stack.length; i++) {
if (stack.length === 0){
console.log(reversed); //output [ 'f', 'e', 'd', 'c', 'b', 'a' ]
return reversed
}
else{
reversed.push(stack.pop()); //store popped item in poppedItems
ReverseStack(stack,reversed)
//why the below does not work? it says reversed.push is not a function
//ReverseStack(stack,reversed.push(stack.pop()))
}
}
};
console.log(ReverseStack(stack, reversed)); //output undefined ? why is that
【问题讨论】:
标签: javascript arrays stack reverse