every() и some()

Методы every() и some() являются предикатами массива: они применяют указанную функцию-предикат к элементам массива и возвращают true или false. Метод every() напоминает математический квантор всеобщности : он возвращает true, только если переданная вами функция-предикат вернула true для всех элементов массива:

a = [1,2,3,4,5];

a.every(function(x) { return x < 10; }) // => true: все зна­че­ния < 10.
a.every(function(x) { return x % 2 === 0; }) // => false: не все чет­ные.

Метод some() напоминает математический квантор существования : он возвращает true, если в массиве имеется хотя бы один элемент, для которого функция-предикат вернет true, а значение false возвращается методом, только если функция-предикат вернет false для всех элементов массива:

a = [1,2,3,4,5];

a.some(function(x) { return x%2===0; }) // => true: име­ют­ся чет­ные чис­ла.
a.some(isNaN) // false

___________________________________________________

Оба метода, every() и some(), прекращают обход элементов массива, как только результат становится известен.

Метод some() возвращает true / false на каждой итерации. Как только метод вернул true, итератор прекращает работу и возвращает true. (Например, если на первой итерации - true - то работа прекращается, и последующих итераций не будет). Иначе, если ни на одном шаге не вренется true, вернется false.

Метод every() работает аналогично some(). Но логика обратна. Он работает до тех пор, пока функция возвращает true.

P.S: В соответствии с правилами математики для пустого массива метод every() возвращает true, а метод some() возвращает false.


<<< back

results matching ""

    No results matching ""