Loading:


JavaScript Funkcja Filter (Metoda obiektu: Array)

Tworzy nową tablicę z wszystkimi elementami, które przechodzą poprawnie zrealizowany w postaci dostarczonej funkcji test.


Metoda obiektu: Array

Składnia

filter(callback[, thisObject])


Parametry

callback -Funkcja sprawdzająca każdy element tablicy.


thisObject -Obiekt na który będzie wskazywał this, gdy wykonana zostanie funkcja zwrotna callback.


Opis

Metoda filter wykonuje dostarczoną funkcję callback dla każdego elementu tablicy tworząc nową tablicę z wszystkich tych elementów, dla których funkcja callback zwróciła wartość true. Wynikowa tablica jest zwarta; wartości które nie przechodzą testu funkcji callback są zwyczajnie pomijane i nie są przypisywane do indeksów nowej tablicy.

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 filter, będzie on wskazywany przez this dla każdego wywołania funkcjicallback. 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 filter nie modyfikuje tablicy, na której jest wywoływana.

Zakres elementów przetwarzanych przez filter jest ustawiany przed pierwszym wywołaniem funkcji callback. Elementy dołączone do tablicy po momencie wywołania filter 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 filter się o nie zwróci; metoda filter nie upomina się o elementy usunięte.

Kompatybilność


filter 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.filter)
{
  Array.prototype.filter = function(fun /*, thisp*/)
  {
    var len = this.length;
    if (typeof fun != "function")
      throw new TypeError();

    var res = new Array();
    var thisp = arguments[1];
    for (var i = 0; i < len; i++)
    {
      if (i in this)
      {
        var val = this[i]; // in case fun mutates this
        if (fun.call(thisp, val, i, this))
          res.push(val);
      }
    }

    return res;
  };
}




Przykłady


 

Przykład: Odfiltrowanie wszystkich małych wartości


Poniższy przykład używa filter by utworzyć przefiltrowaną tablicę, z której usunięto wszystkie elementy których wartość wynosi mniej niż 10.

function isBigEnough(element, index, array) {

  return (element >= 10);

}

filtered = [12, 5, 8, 130, 44].filter(isBigEnough);

 



Napisz Artykuł

Listing

niema


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=3&t=2696

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: igor
Ranga: Administrator serwisu Punktów: 28716
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors