Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:findIndex()返回TypeError_Javascript - Fatal编程技术网

JavaScript:findIndex()返回TypeError

JavaScript:findIndex()返回TypeError,javascript,Javascript,我有一个问题,我有一个包含数字的基本数组,我想检查数组中是否有某个数字,如果是,它会返回数字所在的索引。我从一个函数中得到这个数字。当我运行代码时,findIndex()给我一个类型错误:不是函数。看看我的代码: const numberProducer = function(n) { return n + 1; }; var number = numberProducer(1); var arr = [1, 2, 3, 4]; var isNumberInArray = arr.find

我有一个问题,我有一个包含数字的基本数组,我想检查数组中是否有某个数字,如果是,它会返回数字所在的索引。我从一个函数中得到这个数字。当我运行代码时,
findIndex()
给我一个
类型错误:不是函数。看看我的代码:

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>
}
const numberProducer=函数(n){
返回n+1;
};
var编号=编号产生者(1);
var-arr=[1,2,3,4];
var isNumberInArray=arr.findIndex(数字);
如果(isNumberInArray==-1){
}
否则{
}

我尝试给
findIndex()
一个固定值,但它仍然给我错误。

findIndex
将函数作为参数,并返回满足给定条件的第一个元素。如果要使用
findIndex()
,则需要传递一个函数

arr.findIndex(x => x === number);
但在这种情况下,最合适的选择是使用
indexOf()
。当没有条件时,您只想获取元素的索引,那么
indexOf()
更好

arr.indexOf(number);
const numberProducer=函数(n){
返回n+1;
};
var编号=编号产生者(1);
var-arr=[1,2,3,4];
var指数=arr.indexOf(数字);

log(index)
findIndex
接受回调,而不是数字。因此:

const isNumberInArray = arr.findIndex((x) => x === number);

是您想要的。

因为arry.findIndex()中没有函数和条件。当函数中的值位于findIndex()时,findIndex()查找值。应该有标志的参数和条件的值。比如说,

arr.findIndex((value) => value === number);
在findIndex()中,有ES6,因此下面的代码也是一样的

function(value) { 
  return value === number 
});
函数(){return}与()=>{}相同。如果值符合数字,则findIndex返回正确值的索引

下面是ES6的参考

const numberProducer=函数(n){
返回n+1;
};
var编号=编号产生者(1);
var-arr=[1,2,3,4];
//在findIndex()中,应该有函数和条件
变量isNumberInArray=arr.findIndex(
函数(值){
返回值===number
});
控制台日志(编号)