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
});
控制台日志(编号)