我有一个数组["#page1", "yield", "yield", "yield", "#page2", "yield", "#page3"]
我想自上而下遍历数组,从最后一个 yield
开始,寻找下一个不是 yield
的元素(即 #page2
).
这是我的:
var longest = ["#page1", "yield", "yield", "yield", "#page2", "yield", "#page3" ],
longestLen = longest.length;
for (i = longestLen-2; i>=0; i--) {
if ( longest[i] != "yield") {
var gotoPage = longest[i];
}
}
我从 i=5(6 次迭代)开始并检查元素是否不是 yield
。然而,当前的方式贯穿所有 6 次迭代,所以我最终得到的是 page#1
而不是 #page2
。我不知道如何停止迭代。
使用return
没用,还有什么办法吗? lastIndexOf
是我可以使用的东西吗?
感谢您的帮助!
最佳答案
只是因为到目前为止还没有人提到它,你也可以使用 ES5 .some()
来实现它。
看起来像:
var longest = ["#page1", "yield", "yield", "yield", "#page2", "yield", "#page3" ],
gotoPage;
longest.reverse().slice(1).some(function( elem ) {
return (gotoPage = elem) !== "yield";
});
alert('goto page: ' + gotoPage);
关于javascript - 遍历数组直到找到指定元素的第一次出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7876833/