Если вы не знакомы с методами массива .forEach() или .reduce(), я предлагаю вам проверить Почему и когда использовать forEach, отображать, фильтровать, сокращать и находить в JavaScript.

Когда использовать .every ()?

.every(), если вы хотите получить одиночное логическое значение из нескольких элементов в массиве.

Условия:

  • У вас есть массив.
  • Вы хотите протестировать каждый элемент в массиве.
  • Вы хотите знать, все ли элементы проходят этот тест. true / false.

Как использовать .every ()?

Использование .every(), аналогичных .reduce(), за исключением неявного аккумулятора. т.е. вы даете .every() тест для запуска для каждого элемента в массиве, и он отслеживает, вернет ли все true или false для вас.

Array.every(testFunction);

Пример:

var sampleArray = [ 1, 2, 3, 4, 5 ];
var sampleArray2 = [ 0, -1, -30, 5];
function tester(number){
  return number > 0;
}
sampleArray.every(tester); // returns true
sampleArray2.every(tester); // returns false

По сути, это происходит по каждому элементу массива и проверяется, все ли они верны.

Пример ES6:

Хорошим преимуществом синтаксиса es6 является то, что вы можете легко передать анонимную функцию тестера в сжатой форме.

const sampleArray = [ 1, 2, 3, 4, 5 ];
const sampleArray2 = [ 0, -1, -30, 5];
sampleArray.every( number => number > 0 ); // returns true
sampleArray2.every( number => number > 0 ); // returns false

Зачем использовать .every ()?

Хорошо, тогда зачем использовать .every()? Вы можете добиться того же, используя .reduce() или .forEach() или простой for цикл. Давайте сравним другие реализации.

Для примера цикла

let sampleArray = [ 1, 2, 3 ];
let i;
let isGreaterThanZero = number => number > 0;
let allPositive = true;
for (i=0; i < sampleArray.length; i++) {
  allPositive = allPositive
                       && isGreaterThanZero(sampleArray[i]);
}

Пример цикла For

let sampleArray = [ 1, 2, 3 ];
let isGreaterThanZero = number => number > 0;
let allPositive = true;
for (let i of sampleArray) {
  allPositive = allPositive
                && isGreaterThanZero(sampleArray[i - 1]);
}

.forEach () Пример

let sampleArray = [ 1, 2, 3 ];
let isGreaterThanZero = number => number > 0;
let allPositive = true;
sampleArray.forEach( num => {
  allPositive = allPositive && isGreaterThanZero(num);
});

.reduce () Пример

let sampleArray = [ 1, 2, 3 ];
let isGreaterThanZero = number => number > 0;
let allPositive = sampleArray.reduce(
  (allPositive, num ) => {
    return allPositive && isGreaterThanZero(num);
  }
);

.every () Пример

let sampleArray = [ 1, 2, 3 ];
let isGreaterThanZero = number => number > 0;
let allPositive = sampleArray.every( num => isGreaterThanZero(num));

Хотя он имеет более узкий диапазон применения и, возможно, не так хорошо известен, как другие методы массива, .every() по-прежнему является стандартным array методом в Javascript.

Я надеюсь, что ответ на вопрос «Зачем использовать .every()» ясен. На основе приведенных выше примеров… при использовании стандартных методов гораздо легче читать и быстро выяснять, что происходит. Если вы не используете стандартные методы, следующему разработчику, который рассмотрит этот код, придется потратить дополнительное время, чтобы понять, что происходит.

Дальнейшее чтение