循环的简单Javascript在第一次迭代后停止
我读过很多有类似问题的帖子,但仍然不明白为什么这篇文章很奇怪。我尝试了尝试/捕获,但没有报告任何错误。数组实际上是100+,但在示例中缩小了范围。它在搜索数组中的第一个项时起作用,但在此之后,它在一次迭代尝试后失败。我打印出了数组长度,它看到数组的长度超过了100 编辑:我应该注意,这是唯一使用var k的地方循环的简单Javascript在第一次迭代后停止,javascript,Javascript,我读过很多有类似问题的帖子,但仍然不明白为什么这篇文章很奇怪。我尝试了尝试/捕获,但没有报告任何错误。数组实际上是100+,但在示例中缩小了范围。它在搜索数组中的第一个项时起作用,但在此之后,它在一次迭代尝试后失败。我打印出了数组长度,它看到数组的长度超过了100 编辑:我应该注意,这是唯一使用var k的地方 function main(){ var list = [["feature 123", 5.0], ["feature 234", 38.0
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
}
}
}
函数main(){
变量列表=[“功能123”,5.0],“功能234”,38.0],“功能345”,38.0];
var search=“功能234”;
var a=getIndexx(列表,搜索);
}
函数getIndexx(数组,str){
for(var k=0;k
您在for循环中返回-1
,这意味着如果它在第一个索引中找到匹配项,它将返回0
,否则它将立即返回-1
。您希望移动返回-1,使其位于for循环之后,因此如果未找到匹配项,则返回-1。您不需要else
条件。如果条件有效,您只希望返回找到的索引
如果循环时未找到匹配值,则返回-1
函数main(){
变量列表=[
[“功能123”,5.0],
[“功能234”,38.0],
[“功能345”,38.0]
];
var search=“功能234”;
var a=getIndexx(列表,搜索);
console.log(a);//1
}
函数getIndexx(数组,str){
for(var k=0;k main()代码>你回到for循环中,这就打破了它。天哪,我觉得自己像个白痴。非常感谢。一旦它允许我,我会把它标记为答案。