我读过很多其他有类似问题的帖子,但仍然不明白为什么这个很奇怪。我尝试执行 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
}
}
}
You return -1
在 for 循环内,这意味着如果它在第一个索引上找到匹配项,它将返回0
否则它会立即返回-1
。你想要移动return -1
所以它在 for 循环之后,因此如果找不到匹配项,则返回 -1。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)