确实是新手问题,但为什么我的函数返回 -1?该函数确实有匹配项,那么为什么该函数返回 -1 而不是索引值。如果我删除 else 语句,它将返回正确的输出。
let array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
let target = 5;
function search() {
for (let i = 0; i < array.length; i++) {
if (array[i] === target) {
console.log(true);
return array.indexOf(array[i]);
} else {
console.log(false);
return -1;
}
}
}
search();
您正在检查第一个元素(索引i = 0
)针对目标。如果它们不匹配,您可以致电return -1
. return
立即存在该函数。您可能希望将返回放在循环之后。
let array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
let target = 5;
function search() {
for (let i = 0; i < array.length; i++) {
if (array[i] === target) {
console.log(true);
return i;
}
}
console.log(false);
return -1;
}
search();
此外,没有必要这样做array.indexOf
在循环内部,因为如果array[i] == target
你已经有了正确的索引i
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)