首页 > 解决方案 > 简单的 Javascript for 循环在第一次迭代后停止

问题描述

我已经阅读了许多其他有类似问题的帖子,但仍然无法弄清楚为什么这个帖子很奇怪。我尝试做 try/catch 并没有报告错误。这些数组实际上是 100+,但为了示例而缩小了范围。它在搜索数组中的第一项时有效,但在此之后它在一次迭代尝试后失败。我打印出数组长度,发现数组长度超过 100。

编辑:我应该注意,这是唯一使用 var k 的地方。

function main(){
  var list = [["feature 123", 5.0], ["feature 234", 38.0], ["feature 345", 38.0]];
  var search = "feature 234";
  var a = getIndexx(list, search);
}

function getIndexx(array, str) {
   for(var k=0; k < array.length; k++) {
     if(array[k][0] === str) {
       return k;
     } else {
       return -1
     }
  }
}

标签: javascript

解决方案


return -1在 for 循环中,这意味着如果它在第一个索引上找到匹配项,它将返回0,否则将立即返回-1。你想移动它return -1所以它在for循环之后,所以如果它没有找到匹配它返回-1。


推荐阅读