javascript - 当尝试 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 显示到控制台,而不是我得到未定义。
解决方案
lowestIndexInsert()
没有返回任何东西,你return
在forEach
循环中。
因此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))
推荐阅读
- python - 我使用 ReadFromSpanner 在 Apache Beam 中获得 504 Deadline Exceeded
- python - 从 pandas 中的数据集转换
- arduino - 从睡眠中远程唤醒arduino
- android - Firebase 电子邮件模板不允许我使用。我不能改变它
- php - 连接成功时出现 Wordpress 数据库连接错误
- javascript - 如何使用 pop 和 push 与 mongoose 一起查询?
- wamp - 直接进入 wampserver 上的项目文件
- p5.js - 如何创建一条随着您在 p5.js 中绘制更多内容而后退的线条?
- internationalization - i18next 与 HttpBackend,Trans 在初始化完成之前寻找密钥
- rssi - 合并来自 BluetoothGattCallBack 的 RSSI 和特征值的结果