Как я могу получить первый элемент из моего стека вот мой код
var stack = [];
stack.push(id1);
stack.push(id2);
Я знаю, что в java есть что-то вроде peek. Есть ли подобный метод в JS, с помощью которого я могу получить самый верхний элемент?
Как я могу получить первый элемент из моего стека вот мой код
var stack = [];
stack.push(id1);
stack.push(id2);
Я знаю, что в java есть что-то вроде peek. Есть ли подобный метод в JS, с помощью которого я могу получить самый верхний элемент?
Чтобы проверить верхний элемент, к сожалению, вы должны явно индексировать его
var top = stack[stack.length-1];
синтаксис stack[-1]
(который будет работать на Python) не работает: отрицательные индексы действительны только как параметры для вызова slice
.
// The same as stack[stack.length-1], just slower and NOT idiomatic
var top = stack.slice(-1)[0];
Чтобы извлечь элемент, тем не менее pop
:
// Add two top-most elements of the stack
var a = stack.pop();
var b = stack.pop();
stack.push(a + b);
var stack = [];
stack.push("id1");
stack.push("id2");
console.log(stack[stack.length-1]); // the top element
console.log(stack.length); //size
Если вам нужен только один край вашего стека (голова или хвост не имеет значения), используйте его в обратном порядке, тогда:
peek()
становится array[0]
,
unshift(v)
становится push()
shift()
становится pop()
некоторый код:
class Stack{
constructor(... args ){
this.store = [... args.reverse()];
}
peek(){
return this.store[0];
}
push(value){
return this.store.unshift(value);
}
pop(){
return this.store.shift();
}
}
const stack = new Stack(1,2,3);
stack.push(4);
console.log(stack.peek());
stack.pop();
console.log(stack.peek())
peek() используется для возврата верхнего элемента из стека. Он не изменяет стек, он просто возвращает элемент для информационных целей.
var stack = [];
stack.push("id1");
stack.push("id2");
var topObj = stack[0]
console.log(topObj)