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

标签 javascript jquery arrays 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];
          }
    }

我从 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/

相关文章:

javascript - 在选定单选按钮后显示/隐藏 div

javascript - 从除 "append"以外的所有内容中删除 CSS 文件到某个 div

javascript - 即使 AngularJS 有延迟,MouseEnter 事件也会失火

php simple xml 如何读取具有不同子节点级别的多个节点

c - 从 C 中的字符串数组打印

javascript - 标题中的单独列过滤。如何单独更改每列的搜索过滤器文本框的宽度?

javascript - JQuery - 如何实现取消按钮

javascript - 如何仅在非移动浏览器上运行 jQuery?

jquery - 自动调整输入及其邻居输入的问题

c++ - 是指针数组吗?