javascript - JS:不确定为什么函数返回
问题描述
真的是新手问题,但为什么我的函数返回 -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
推荐阅读
- node.js - 退出自定义 Sails 1 和 Actions 2
- azure - 检测到类型不兼容的二元运算符。找到运算符类型“And”的操作数类型“Edm.Int32”和“Edm.Int32”
- java - 如何在 intellij IDEA 中从 oracle 数据库生成实体?
- jquery - 使用 Webpack 加载 Jquery
- r - 使用 ggplot inR 在函数中未识别列名
- node.js - Loopback - 如何获取用户 ID 并插入相关模型?(有很多)
- ios - UITextField 外观在 UISearchBar 中不起作用
- node.js - 如何在机器人框架中的每次对话结束时添加竖起大拇指和竖起大拇指?
- wordpress - Facebook 不抓取分享 - cURL 错误?
- dataframe - 如何以像样的方式在 pyspark 中显示数据框。