在本教程中,我们将学习如何解决TypeError: every is not a function in JavaScript。
当我们对一个不是数据类型数组的值使用Array.every() 方法时,我们会在控制台得到以下错误。
例子。
const obj= {
a: 1,
b: 2,
c: 3
};
obj.every(el => el < 10 );
输出。
"TypeError: obj.every is not a function
在上面的例子中,我们得到这个错误是因为我们在一个对象上使用了every() 方法。
为了解决这个错误,我们需要确保在一个数据类型的数组上调用every()方法。
下面是一个例子。
const arr = [2, 3, 4];
const result = arr.every(el=> el < 10);
console.log(result); //Output -> True
如果你在处理一个HTML集合时得到了这个错误,那么在调用every() 方法之前将HMTL集合转换成一个数组。
const elements = document.getElementsByClassName("container");
[...elements].every(el => el.style.color === "red");
我们可以在对其调用some() 函数之前检查给定的值是否是一个数组类型。这样我们就可以避免运行时的错误。
var arr = [1, 2, 3];
if(Array.isArray(arr)){
arr.some(el => el < 10);
}else{
console.log("Given data is not an array")
}
结论
当我们对一个不是数组的值调用every()方法时,会发生 "every不是一个函数 "的错误。为了解决这个错误,在对其调用every()方法之前,将该值转换为数组,或者确保对有效的数组使用every()方法。