从堆栈读取元素而不会在Javascript中丢失它们

时间:2014-06-25 10:27:02

标签: javascript data-structures stack

快速提问。让我们说我有一个Stack,我在那里弹出东西。

var stack = [];
stack.push(2);       // stack is now [2]
stack.push(5);       // stack is now [5]

我如何阅读最后一个元素,因为,让我们说我没有流行音乐的数量?例如,click函数向堆栈添加一个变量,我需要使用最后添加的变量,我使用哪个命令?

而且,如果我想用另一个变量检查​​堆栈的所有对象,它只是一个for循环与

stack[i] != x

提前致谢。

2 个答案:

答案 0 :(得分:1)

读取数组中的最后一个元素

stack[stack.length-1]

stack[i] !== x是更好的比较

!=无法捕捉到null != undefined

的差异

这些与javascript中的truthy和falsy值相关联。

答案 1 :(得分:1)

将最后一个元素分配给变量:

var x = stack[stack.length - 1]

如果您的数组元素是对象,您将需要针对变量检查对象的属性

例如,您可能希望查看是否有一个或多个对象在数组中具有键号/值对'number'/ 2。您可以使用some来检查:

var x = 2;
var arr = [{ number: 1 }, { number: 2 }, { number: 3 }];

var some = arr.some(function (el) {
  return el.number === x;
}); // true

请务必check out the various array methods on MDN