在 运行 之后获取不 return undefined 的代码

Get code to not return undefined after running

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

    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]));

"undefined" 消息来自 console.log。例如 console.log('test') 也将显示未定义。 尝试不 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])

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

简单的解决方案

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))