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 zwrotnacallback
.
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