javascript - JavaScript:findIndex() 返回 TypeError
问题描述
我有这个问题,我有一个包含数字的基本数组,我想检查某个数字是否在所述数组中,如果是,它返回数字所在的索引。我从一个函数中得到所说的数字。当我运行代码时,findIndex(<number>);
给了我一个typeError: <number> is not a function
. 看看我的代码:
const numberProducer = function(n) {
return n + 1;
};
var number = numberProducer(1);
var arr = [1, 2, 3, 4];
var isNumberInArray = arr.findIndex(number);
if (isNumberInArray === -1) {
<do something>
}
else {
<do something>
}
我尝试给出findIndex()
一个固定值,但它仍然给我错误。
解决方案
findIndex
将函数作为参数并返回满足给定条件的第一个元素。如果你想使用findIndex()
你需要传递一个函数
arr.findIndex(x => x === number);
但在这种情况下,最合适的选项是使用indexOf()
. 当没有条件并且您只想获取元素的索引时indexOf()
更好
arr.indexOf(number);
const numberProducer = function(n) {
return n + 1;
};
var number = numberProducer(1);
var arr = [1, 2, 3, 4];
var index = arr.indexOf(number);
console.log(index)
推荐阅读
- javascript - Greasemonkey 脚本在弹出窗口中不起作用
- sql - 使用merge合并匹配的记录
- python - 如何确保子进程在调用 join() 之前完成将数据复制到共享内存中?
- java - ComboBox 显示空列表
- netty - IdleStateHandler - 在同一管道上添加和删除同一实例
- python - sympy.physics.units 替换给出 TypeError
- swift - 如何让 SwiftUI 视图完全填充其超级视图?
- html - 有没有办法可以将 mailto 链接与 ngFor 合并?
- c# - 泛型类型转换异常
- javascript - HTML5 canvas webgl,无法绘制立方体