解决TypeError: every is not a function in JavaScript

499 阅读1分钟

在本教程中,我们将学习如何解决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()方法。