JS:不确定函数返回的原因

2023-12-27

确实是新手问题,但为什么我的函数返回 -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(使用前将#替换为@)

JS:不确定函数返回的原因 的相关文章

  • 将 next.js 与纱线工作区结合使用

    今天遇到了这样的项目结构的复杂情况 packages app pages package json ui kit pages package json shared babelrc package json root lvl 包 json
  • 在 userCodeAppPanel 中看不到我的 javascript 代码

    这是来自 Google 电子表格中包含的脚本的代码 唯一的其他代码是onOpen它创建菜单和showDialog 功能 function showDialog userInterface HtmlService createHtmlOutp
  • 检测对给定 JavaScript 事件的支持?

    我有兴趣使用 JavaScript hashchange 事件来监视 URL 片段标识符的更改 我知道非常简单的历史 http code google com p reallysimplehistory 以及用于此目的的 jQuery 插件
  • setTimeout 用于加载下拉列表中的项目

    我在用setTimeout克服 中提到的缓慢处理脚本警告 禁用 Internet Explorer 中的长时间运行脚本消息 https stackoverflow com questions 4460263 disabling the lo
  • 弃用警告:时刻构造回退到 js Date

    我正在尝试转换这个日期时间 150423160509 这是 utc 日期时间 改为以下格式 2015 04 24 00 05 09 本地时区 通过使用 moment js var moment require moment timezone
  • 我可以用一个简单的函数制作一个迭代器吗? (没有生成器或 Symbol.iterator)

    我一直在尝试使用普通函数创建一个迭代器 而不使用生成器或使用Symbol iterator用于学术目的的协议 为此 我创建了一个函数 它返回一个带有next参数 但尝试将其作为iterable的论证for of循环会产生不需要的结果 这是到
  • Webpack - 资产大小限制中的警告:以下资产超出了建议的大小限制 (244 KiB)

    当我在生产模式下运行 webpack 时 有资产规模限制 超出 的警告 我怎样才能运行而不出现这个错误 在我的项目中 我包含 css 并且我看到 webpack 构建中包含一些 node module 目录 但是如果我排除 css 的 no
  • UpdatePanel 启动脚本未执行

    我正在编写一个在 SharePoint 网站中使用的 ASP NET Web 部件 并尝试使用 UpdatePanel 来呈现查询结果 我想使用 JQuery 插件来修改从异步回发返回的表 但我无法让启动脚本在异步更新上执行 我发现这个帖子
  • Lightbox:如何翻译“Image x of x”文本?

    我使用 Lightbox 2 作为图像集 当我的网站的访问者单击该集中的缩略图时 它将显示 图像的放大版本 下面是 描述 取自 a 标题属性 其下方 文本 Image x of x 例如 Image 1 of 12 有谁知道在哪里翻译 更改
  • 带有桌子的嵌套表

    我在应用了表排序器的表中嵌套了表 它在嵌套表中添加了排序标题 但是它们没有对行进行排序 并且抛出了JavaScript错误 我想拥有 嵌套表不可排序 巢表上的排序实际上可以工作 但不是现状 您的第一个选择要容易得多 使嵌套表不可排序 像这样
  • 如何在使用类型分散时将箭头添加到行尾

    如何在 y 不等于 0 且系列类型以线宽 2 分散的情况下正确地将箭头添加到行的每一端 在这里我可以看到箭头已添加但未正确添加 请看这个 部分工作小提琴 http jsfiddle net vnYCX 这是我的 JS 最初的原型是由 sta
  • Ajax 函数在重定向后不保存滚动位置

    正如标题所述 我编写了一个 ajax 函数 该函数应该滚动到用户在重定向之前所在的位置 我写了一个alert对于测试场景 它确实触发了 但滚动不断回到顶部 我在这里做错了什么 JavaScript ajax type GET url Adm
  • 如何使用转义的 unicode 解码字符串?

    我不确定这叫什么 所以我在搜索时遇到了麻烦 如何使用 unicode 解码字符串http u00253A u00252F u00252Fexample com to http example com使用 JavaScript 我试过unes
  • Kendo 刷新 (DropDownList.refresh()) 不起作用错误未定义

    我试图在另一个 DropDownList 更改后刷新下拉列表 但 Refresh 方法未定义错误正在升级 我尝试再次读取数据源 它显示它正在加载 但数据仍然相同 帮助解决这个问题请 Code DropDownList1 change fun
  • 如何使用 API 中的数据填充选择的下拉元素 - ReactJS

    我对 React 还很陌生 我正在从 API 获取数据 当我检查控制台日志时可以看到数据 但是我不知道如何使用 map 创建一个新数组 然后选项元素可以使用该数组来显示货币代码 目前它填充下拉列表 但选项元素全部为空 结果显示为 NaN 下
  • Dojo“正在加载”消息

    我是 Dojo 新手 所以我需要一些帮助 我的一些链接需要一段时间 当用户单击时 页面开始加载需要几秒钟 我想添加一条 正在加载 消息 我可以用 旧时尚方式 来做 但我想学习新的 更简单 更智能的 Dojo 方式 具体如何工作现在并不重要
  • 检测 html 选择框上的编程更改

    有没有办法让 HTML 选择元素在每次以编程方式更改其选择时调用函数 当使用 JavaScript 修改选择框中的当前选择时 IE 和 FF 都不会触发 onchange 此外 更改选择的 js 函数是框架的一部分 因此我无法更改它以在结束
  • 如何使用 Chart.js 版本 3.2.1 在圆环图中添加文本

    我正在使用 Canvas 在 HTML 中使用 如何使用在圆环图中添加文本 这是我的 javascript 代码和 HTML 代码 我使用了图表js版本3 2 1 所以请给出相同版本 3 的解决方案 var overallStatsCanv
  • 用于替换前 5 个数字的正则表达式,无论它们之间有什么?

    我正在努力实现以下匹配 Input 123 45 6789 123456789 1234 正则表达式尝试输出 d 5 123 45 6789 123456789 1234 d 2 3 123 45 6789 123456789 1234 d
  • 加载谷歌地图控件时是否有事件?

    我知道tilesloaded 但控件似乎在该事件之后加载 我基本上希望能够通过 jQuery 获取控件 但甚至找不到正确的监听 我也刚刚处理了 没有类似的事件 在控件可见之前空闲和tilesloaded触发 因此 基本上将 特殊控制 类添加

随机推荐

  • 在 C++ 中实现 C 标准库

    假设操作系统 内核是用 C 编写的 并且不 执行 任何纯 C 风格的内容 而是公开基于成熟的 C 标准库构建的 C 标准库 这可能吗 如果没有 为什么 PS 我知道 C 库是 C 的一部分 但我们可以说它内部基于基于 C 的实现 小更新 看
  • 如何更改或删除boost序列化中的标签?

    我正在尝试将我的类序列化为 xml 我的课程 class HardwareDto friend class boost serialization access template
  • 当特定类转换为其他类时,JsonSerializer 的行为不符合预期

    我试图从 json net 迁移到微软的 json 并发现一些行为非常不同的东西 让我们使用这个简化的例子 public interface IName string Name get set public class Person INa
  • 如何将复杂对象存储到hadoop Hbase中?

    我有一些复杂的对象 其中包含需要存储到 Hadoop 的集合字段 我不想遍历整个对象树并显式存储每个字段 所以我只是考虑将复杂字段序列化并将其存储为一大块 并且在读取对象时将其反序列化 那么最好的方法是什么 我考虑过为此使用某种序列化 但我
  • SQL 插入条件查询

    我试图在满足条件时将值插入表的 1 列 注意 该表已包含所有列的数据 但 1 列为空 我想根据 WHERE 子句将值插入到这 1 列中 我有这样的疑问 INSERT INTO
  • 在 Mac 上使用 AVFoundation 捕获 iSight 图像

    我之前使用以下代码使用 QTKit 从 Mac 的 iSight 摄像头捕获单个图像 NSError takePicture BOOL success NSError error captureSession QTCaptureSessio
  • IronPython 在托管时如何加载模块?

    我对 IronPython 在托管时加载模块的方式感到困惑 我正在使用使用 MSI 包安装的 IronPython 2 7 7 并且我已经引用了C Program Files x86 IronPython 2 7 IronPython dl
  • Web 浏览器和 OLECMDID_SELECTALL

    当我使用以下命令打开 Google 网页时 WebBrowser1 Navigate http www google com au advanced search hl en 它打开时光标位于编辑框中 所以当我使用 WebBrowser1
  • JQuery mobile - 如何设置多重选择的值?

    我在 jquery mobile 中有一个多重选择 docs http jquerymobile com demos 1 0a4 1 docs forms forms selects html http jquerymobile com d
  • 对不平衡面板数据集进行子集化,以在 R 中至少有 2 个连续观测值

    我在 R 中有一个不平衡面板数据集 以下将作为示例 dt lt data frame name rep c A B C c 3 2 3 year c 2001 2003 2000 2002 2000 2001 2003 gt dt name
  • MATLAB eig 有时会返回倒号

    我正在尝试编写一个获取矩阵的程序A任何大小 SVD 分解它 A U S V Where A是用户输入的矩阵 U是由特征向量组成的正交矩阵A A S是奇异值的对角矩阵 并且V是特征向量的正交矩阵A A 问题是 MATLAB 函数eig有时会返
  • 访问shared_ptr数组

    include
  • 从文本文件中提取数据时出现问题

    我是 python 新手 我想从这种格式中提取数据 FBpp0143497 5 151 5 157 PF00339 22 Arrestin N Domain 1 135 149 83 4 1 1e 23 1 CL0135 FBpp01434
  • Javascript 获取表单数组值

    我设置了一个表单 其中有一个添加按钮 以便我的用户可以一次向该网站提交多人 首先 表单有一个输入来填写人员姓名 如下例所示
  • 计算每列中小于 x 的元素数量

    我有一个如下所示的数据框 我试图计算每列中小于 2 0 的元素数量 然后我将在条形图中可视化结果 我使用列表和循环来做到这一点 但我想知道是否有一种 熊猫方式 可以快速做到这一点 x for i in range 6 x append df
  • F# 使用累加器,仍然出现堆栈溢出异常

    在下面的函数中 我尝试通过使用累加器来设置尾递归 但是 我遇到了堆栈溢出异常 这让我相信我设置函数的方式没有正确启用尾递归 F attempting to make a tail recursive call via accumulator
  • 创建表达式树以访问通用类型的属性

    我需要编写一个泛型方法 它采用泛型类型的实例和字符串格式的属性名称 并返回一个表达式树 我需要转换一个简单的 lambda 表达式 a gt a SomePropertyName where a是泛型类型将拥有财产按名字SomeProper
  • “无法在此文件中预览 - 无法启动 [应用程序名称]”

    我正在尝试在 Xcode 11 和 macOS Catalina 中使用 swiftUI 但 创建新项目后 会出现一个样板代码 其中包含文本 hello World 我想在代码旁边的画布中实时预览这个简单的欢迎消息 当我点击恢复按钮时 它说
  • 优雅的蟒蛇? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • JS:不确定函数返回的原因

    确实是新手问题 但为什么我的函数返回 1 该函数确实有匹配项 那么为什么该函数返回 1 而不是索引值 如果我删除 else 语句 它将返回正确的输出 let array 1 2 3 4 5 6 7 8 9 let target 5 func