【问题标题】:Function that accepts an Array and a Number and returns the first index of the Number if found in the Array接受一个数组和一个数字并返回数字的第一个索引(如果在数组中找到)的函数
【发布时间】:2020-04-21 00:46:55
【问题描述】:

我正在尝试解决以下问题:

创建一个函数,该函数接受一个数组和一个数字,并返回该值存在的第一个索引,如果未找到该值,则返回 -1。

以下是我的尝试,在我自己运行代码时似乎可以正常工作,但不被接受为正确的解决方案 Err!任何帮助表示赞赏。


indexOf = function (arr, num) {

    var idx = arr.indexOf(num);

    for (i=0; i < arr.lenth; i++);

    if (idx !== -1) {return idx}
    else {return -1}
  }
  console.log(indexOf([25, 33, 45, 33, 23, 20], 33))

【问题讨论】:

  • 这能解决您的问题吗? codepen.io/Maniraj_Murugan/pen/BaoLGjv
  • 当我运行你的代码时它似乎可以工作,但它仍然不是一个被接受的解决方案。当我测试你和我的代码时,我得到了正确的答案,然后是=&gt; Undefined。我认为这与它不被接受的原因有关。
  • 从语法上讲,您的代码缺少必要的关键字,然后它有一堆不必要的循环和流控制......等等。
  • 我不能说我不同意你的观点。我对此很陌生,这就是我在这里寻求帮助的原因。

标签: javascript arrays function loops undefined


【解决方案1】:

我相信你试图解决的问题是你不使用内置的indexOf,否则没有问题可以解决。

我不会向您提供解决方案的代码,而是提供您解决问题应该经历的过程。

  1. 遍历数组,从索引 0 开始,到数组末尾结束
  2. 在每次迭代中,将提供的数字与数组中当前索引处的值进行比较
  3. 如果值匹配,只需返回该索引
  4. 如果循环完成但没有返回,则可以安全地假设数组中不存在该数字,因此您必须返回 -1

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 2014-09-16
    • 2022-07-20
    • 2014-10-31
    • 2021-01-21
    相关资源
    最近更新 更多