运行后获取未返回未定义代码的代码

时间:2019-07-09 17:21:54

标签: javascript repl.it

我创建了一个将数字插入到整数数组中的函数。我假设数组已经被排序了,我希望它返回可以插入数字的最低索引。我已经做到了,但是在返回索引之后,当我在repl.it上运行它时,它也会返回未定义的信息。想知道为什么会这样吗?

    function lowestIndexInsert(num,arr){
      for (i = 0; i<arr.length; i++){
          if (arr[i]>num){
             arr[i]=num;
          }
      }
     return arr.indexOf(num);
    }


    console.log(lowestIndexInsert(32,[8,9,15,30,35]));

3 个答案:

答案 0 :(得分:0)

“未定义”消息来自console.log。例如console.log('test')也会显示未定义。 试试wthout console.log,就完成了

    function lowestIndexInsert(num,arr){
  for (i = 0; i<arr.length; i++){
      if (arr[i]>num){
         arr[i]=num;
      }
  }
 return arr.indexOf(num);
}


lowestIndexInsert(32,[8,9,15,30,35])

答案 1 :(得分:0)

如果console.log()语句是源代码的一部分,您将仅获得所需的结果。但是,如果您实际上是从控制台执行console.log(),则将获得额外的undefined,因为在console中,您不必要求console.log(),本身没有返回值(undefined)。在这种情况下,您只需要调用函数并返回其return值即可。

答案 2 :(得分:0)

简单的解决方案

let arr = [1,2,32,35,56,68]
let num = 30

function lowestIndexInsert(num,arr){
  for(let i of arr){
    if(arr[i]>num)
    return i
  }
}

console.log(lowestIndexInsert(num,arr))