Array.prototype.every()

Podsumowanie

Metoda  every() sprawdza, czy wszystkie elementy w tablicy przechodz膮 test zrealizowany w postaci dostarczonej funkcji.

Sk艂adnia

arr.every(callback[, thisArg])

Parametry

callback
Funkcja sprawdzaj膮ca dla ka偶dego elementu. Zawiera trzy argumenty.
currentValue
  
Bie偶膮cy element przetwarzany w tablicy
       index

     Indeks bie偶acego elementu przetwarzanego w tablicy

 array
    Tablica na kt贸rej zosta艂a wywo艂ana funkcja

thisObject
Opcjonalnie. Obiekt, na kt贸ry b臋dzie wskazywa艂 this, gdy wykonana zostanie funkcja zwrotna callback

Opis

Metoda every wykonuje dostarczon膮 funkcj臋 callback raz dla ka偶dego elementu tablicy do momentu, kiedy znajdzie taki element, dla kt贸rego funkcja callback zwr贸ci warto艣膰 false. Je偶eli taki element zostanie znaleziony, test zostanie przerwany, a metoda every zwr贸ci warto艣膰 false. W przeciwnym wypadku (callback zwraca warto艣膰 true dla wszystkich element贸w) every zwr贸ci true. Funkcja callback wywo艂ywana jest jedynie dla indeks贸w tablicy, kt贸rym zosta艂a przypisana warto艣膰; nie jest wywo艂ywana dla indeks贸w, kt贸re zosta艂y usuni臋te i tych, kt贸rym nigdy nie zosta艂a przypisana 偶adna warto艣膰.

Funkcja callback jest wywo艂ywana z trzema argumentami: warto艣ci膮 elementu, jego indeksem i obiektem tablicy, w kt贸rym si臋 ten element zawiera.

Je艣li parametr thisObject zosta艂 dostarczony do metody every, b臋dzie on wskazywany przez this dla ka偶dego wywo艂ania funkcji callback. W przypadku, gdy nie zosta艂 on przekazany lub jego warto艣膰 jest r贸wna null, this b臋dzie si臋 odnosi膰 do obiektu globalnego po艂膮czonego z funkcj膮 callback.

Metoda every nie modyfikuje tablicy, na kt贸rej jest wywo艂ywana.

Zakres element贸w przetwarzanych przez every jest ustawiany przed pierwszym wywo艂aniem funkcji callback. Elementy do艂膮czone do tablicy po momencie wywo艂ania every s膮 testowane przez callback. Je艣li istniej膮ce elementy tablicy s膮 zmieniane lub usuwane, to warto艣膰 przesy艂ana do funkcji callback odpowiada warto艣ci w momencie, w kt贸rym every si臋 o nie zwr贸ci; metoda every nie upomina si臋 o elementy usuni臋te.

Kompatybilno艣膰

every jest rozszerzeniem JavaScript dla standardu ECMA-262, wi臋c mo偶e nie by膰 obecny w innych implementacjach tego standardu. Mo偶na to obej艣膰, dopisuj膮c poni偶szy kod na pocz膮tku skryptu, zezwalaj膮cy na u偶ycie every w implementacji ECMA-262, kt贸re nie wspieraj膮 tego natywnie.

if (!Array.prototype.every)
{
  Array.prototype.every = function(fun /*, thisp*/)
  {
    var len = this.length;
    if (typeof fun != "function")
      throw new TypeError();

    var thisp = arguments[1];
    for (var i = 0; i < len; i++)
    {
      if (i in this &&
          !fun.call(thisp, this[i], i, this))
        return false;
    }

    return true;
  };
}

Przyk艂ady

Przyk艂ad: Sprawdzanie rozmiaru wszystkich element贸w tablicy

Nast臋puj膮cy przyk艂ad sprawdza, czy wszystkie elementy w tablicy s膮 wi臋ksze ni偶 10.

function isBigEnough(element, index, array) {
  return (element >= 10);
}
passed = [12, 5, 8, 130, 44].every(isBigEnough);
// fa艂sz
passed = [12, 54, 18, 130, 44].every(isBigEnough);
// prawda