How is
while (
stack.peek() in ops &&
p(stack.peek()) >= 10
) {
str += stack.pop();
}
rewritten so I call .peek() every time the loop runs, but only define it once?
I have thought about
const peek = stack.peek();
while (
peek in ops &&
p(peek) >= 10
) {
str += stack.pop();
}
but since I modify stack with stack.pop() inside the while loop, I guess the value of stack.peek() is changing every time, so I guess I have to redefine the variable inside the loop, but
let peek = stack.peek();
while (
peek in ops &&
p(peek) >= 10
) {
str += stack.pop();
peek = stack.peek();
}
also seems a bit wrong, so should it be something like
while (
let peek = stack.peek() &&
peek in ops &&
p(peek) >= 10
) {
str += stack.pop();
}
or
for (
let peek = stack.peek();
peek in ops && p(peek) >= 10;
peek = stack.peek()
) {
str += stack.pop();
}
forloop instead? Not clear to me what the issue is. Use whatever code works?stackcontain functions? And sostack.peek()returns a function? Sopeekis a function? In that case, how canpeek in opsmake sense?Array.prototype.peek = () => this[this.length - 1]. " Note,var stack = [1,2,3]; stack.peek()returned3, here, usingfunctionkeyword .Array.prototype.peek = function() { return this[this.length - 1]}.var stack = [1,2,3]; Array.prototype.peek = () => this[this.length - 1]; stack.peek()returnedundefinedusing arrow function.