javascript - 简单的 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
}
}
}
解决方案
您return -1
在 for 循环中,这意味着如果它在第一个索引上找到匹配项,它将返回0
,否则将立即返回-1
。你想移动它return -1
所以它在for循环之后,所以如果它没有找到匹配它返回-1。
推荐阅读
- react-native - 如何解决此查看器页面?
- git - 如何删除此合并分支?
- ionic-framework - 离子 BLE 中央 startNotification 不触发自定义回调
- javascript - 使用 Formula.js 从公式中获取结果作为字符串
- r - ggarrange 底部图形的 x 轴被截断
- python - 储蓄情绪分析模型
- r - 与多变量条件 R 配对
- google-chrome-extension - 为什么我没有收到来自 Node.JS Native App 到我的 chrome 扩展的任何消息?
- forms - MS Access:显示存储在表格中的图片/徽标作为附件
- wordpress - Wordpress - 按分类挂钩预加载术语页面