javascript - 遍历数组直到找到指定元素的第一次出现?

fre*_*ent 4 javascript arrays jquery loops

我有一个数组 ["#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];
          }
    }
Run Code Online (Sandbox Code Playgroud)

我从 i=5 (6 次迭代)开始并检查元素是否不是yield。但是,当前的方式贯穿所有 6 次迭代,所以我最终得到了page#1而不是#page2. 我不知道如何停止迭代。

return了没用,还有什么办法?有lastIndexOf什么我可以用的吗?

感谢帮助!

jAn*_*ndy 6

仅仅因为到目前为止没有人提到它,你也可以使用 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);
Run Code Online (Sandbox Code Playgroud)