Вы не передали функцию, которая выполняется во время обхода массива, которая должна возвращать логический результат.
Из руководства (внимательно прочитайте и посмотрите жирные слова ):
Метод every () проверяет, все ли элементы массива проходят тест, реализованный предоставленной функцией .
И это пример правильного использования:
let isValidArrayOfIntegers;
isValidArrayOfIntegers =
[1, 2, 3, 5.3, 0.1, false, true, NaN, undefined]
.every(function(item) {
return Number.isInteger(item);
});
console.log(isValidArrayOfIntegers);
isValidArrayOfIntegers =
[1, 2, 3]
.every(function(item) {
return Number.isInteger(item);
});
console.log(isValidArrayOfIntegers);
PS every
- сокращение от find
метода.Разница в том, что find
находит первое вхождение, останавливает итерацию и возвращает действительный элемент.Но every
находит первое недопустимое вхождение и останавливает итерацию с логическим результатом.
let isValidArrayOfIntegers;
isValidArrayOfIntegers =
![1, 2, 3, 0.1, 5.3, false, true]
.find(function(item) {
let isInteger = Number.isInteger(item);
if (!isInteger) console.log(item, 'is not integer, breaking loop');
return !isInteger;
});
console.log(isValidArrayOfIntegers);
isValidArrayOfIntegers =
![1, 2, 3]
.find(function(item) {
return !Number.isInteger(item);
});
console.log(isValidArrayOfIntegers);