首页 > 解决方案 > 当尝试 Console.log 函数的结果时,我得到未定义

问题描述

假设数组已排序,我试图找到要插入的数字的最低索引。

当我在 If 语句中将结果记录到控制台时,它看起来是正确的。

但是,当我尝试将函数记录到控制台时,我得到未定义?

我试图将函数声明为具有相似结果的 var。

function lowestIndexInsert(num, arrayofIntegers) {
  arrayofIntegers.forEach(function(element) {
  if(num >= element) {
    // console.log(arrayofIntegers.indexOf(element) + 1)
  return (arrayofIntegers.indexOf(element) + 1);

    }
  });
}
var testarray = [1, 3, 5, 6, 7, 11, 13, 50]

console.log(lowestIndexInsert(35, testarray))

这应该将数字 7 显示到控制台,而不是我得到未定义。

标签: javascriptnode.js

解决方案


lowestIndexInsert()没有返回任何东西,你returnforEach循环中。

因此undefined. 尝试这样的事情:

function lowestIndexInsert(num, arrayofIntegers) {
  var idx = 0;
  arrayofIntegers.forEach(function(element) {
    if (num >= element) {
      idx = arrayofIntegers.indexOf(element) + 1
    }
  });
  return idx;
}
var testarray = [1, 3, 5, 6, 7, 11, 13, 50]

console.log(lowestIndexInsert(35, testarray))


推荐阅读