首页 > 解决方案 > 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()一个固定值,但它仍然给我错误。

标签: javascript

解决方案


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)


推荐阅读