mozilla

Porównywanie wersji

Array.prototype.filter()

Change Revisions

Wersja 269643:

Sprawdzenie wersji 269643 wykonane przez Krzysiek6

Wersja 219448:

Sprawdzenie wersji 219448 wykonane przez Krzysiek6

Tytuł:
filter
filter
Ciąg znaków:
Dokumentacja_języka_JavaScript_1.5/Obiekty/Array/filter
Dokumentacja_języka_JavaScript_1.5/Obiekty/Array/filter
Etykiety:
JavaScript, Wszystkie_kategorie, Strony_wymagające_dopracowania, Dokumentacja_JavaScript, Dokumentacje
Treść:

Revision 269643
Revision 219448
t7    <p>t
8      {{ Dopracuj() }}
9    </p>
10    <h3 id="Podsumowanie" name="Podsumowanie">
11      Podsumowanie
12    </h3>
13    <p>
14      Tworzy nową tablicę z wszystkimi elementami, które przechod
>zą poprawnie zrealizowany w postaci dostarczonej funkcji test. 
15    </p>
16    <table class="fullwidth-table">
17      <tbody>
18        <tr>
19          <td class="header" colspan="2">
20            Metoda obiektu: <a href="/pl/Dokumentacja_j%C4%99zyka
>_JavaScript_1.5/Obiekty/Array" title="pl/Dokumentacja_języka_Java 
>Script_1.5/Obiekty/Array">Array</a> 
21          </td>
22        </tr>
23        <tr>
24          <td>
25            Zaimplementowana w:
26          </td>
27          <td>
28            JavaScript 1.6 (Gecko 1.8b2 i wyższe)
29          </td>
30        </tr>
31        <tr>
32          <td>
33            Edycja ECMAScript:
34          </td>
35          <td>
36            brak
37          </td>
38        </tr>
39      </tbody>
40    </table>
41    <h3 id="Sk.C5.82adnia" name="Sk.C5.82adnia">
42      Składnia
43    </h3>
44    <p>
45      <code>filter(<i>callback</i>{{ mediawiki.external(', <i>thi
>sObject</i>') }})<br></code> 
46    </p>
47    <h3 id="Parametry" name="Parametry">
48      Parametry
49    </h3>
50    <dl>
51      <dt>
52        <code>callback</code>&nbsp;
53      </dt>
54      <dd>
55        Funkcja sprawdzająca każdy element tablicy.
56      </dd>
57      <dt>
58        <code>thisObject</code>&nbsp;
59      </dt>
60      <dd>
61        Obiekt na który będzie wskazywał <code>this</code>, gdy w
>ykonana zostanie funkcja zwrotna <code>callback</code>. 
62      </dd>
63    </dl>
64    <h3 id="Opis" name="Opis">
65      Opis
66    </h3>
67    <p>
68      Metoda <code>filter</code> wykonuje dostarczoną funkcję <co
>de>callback</code> dla każdego elementu tablicy tworząc nową tabl 
>icę z wszystkich tych elementów, dla których funkcja <code>callba 
>ck</code> zwróciła wartość <code>true</code>. Wynikowa tablica je 
>st zwarta; wartości które nie przechodzą testu funkcji <code>call 
>back</code> są zwyczajnie pomijane i nie są przypisywane do indek 
>sów nowej tablicy. 
69    </p>
70    <p>
71      Funkcja <code>callback</code> jest wywoływana z trzema argu
>mentami: wartością elementu, jego indeksem i obiektem tablicy, w  
>którym się ten element zawiera. 
72    </p>
73    <p>
74      Jeśli parametr <code>thisObject</code> został dostarczony d
>o metody <code>filter</code>, będzie on wskazywany przez <code>th 
>is</code> dla każdego wywołania funkcji<code>callback</code>. W p 
>rzypadku, gdy nie został on przekazany lub jego wartość jest równ 
>a <code>null</code>, <code>this</code> będzie się odnosić do obie 
>ktu globalnego połączonego z funkcją <code>callback</code>. 
75    </p>
76    <p>
77      Metoda <code>filter</code> nie modyfikuje tablicy, na które
>j jest wywoływana. 
78    </p>
79    <p>
80      Zakres elementów przetwarzanych przez <code>filter</code> j
>est ustawiany przed pierwszym wywołaniem funkcji <code>callback</ 
>code>. Elementy dołączone do tablicy po momencie wywołania <code> 
>filter</code> są testowane przez <code>callback</code>. Jeśli ist 
>niejące elementy tablicy są zmieniane lub usuwane, to wartość prz 
>esyłana do funkcji <code>callback</code> odpowiada wartości w mom 
>encie, w którym <code>filter</code> się o nie zwróci; metoda <cod 
>e>filter</code> nie upomina się o elementy usunięte. 
81    </p>
82    <h3 id="Kompatybilno.C5.9B.C4.87" name="Kompatybilno.C5.9B.C4
>.87"> 
83      Kompatybilność
84    </h3>
85    <p>
86      <code>filter</code> jest rozszerzeniem JavaScript dla stand
>ardu 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ąt 
>ku skryptu, zezwalający na użycie <code>every</code> w implementa 
>cji ECMA-262, które nie wspierają tego natywnie. 
87    </p>
88    <pre class="eval">
89if (!Array.prototype.filter)
90{
91  Array.prototype.filter = function(fun /*, thisp*/)
92  {
93    var len = this.length;
94    if (typeof fun != "function")
95      throw new TypeError();
96 
97    var res = new Array();
98    var thisp = arguments[1];
99    for (var i = 0; i &lt; len; i++)
100    {
101      if (i in this)
102      {
103        var val = this[i]; // in case fun mutates this
104        if (fun.call(thisp, val, i, this))
105          res.push(val);
106      }
107    }
108 
109    return res;
110  };
111}
112</pre>
113    <h3 id="Przyk.C5.82ady" name="Przyk.C5.82ady">
114      Przykłady
115    </h3>
116    <h4 id="Przyk.C5.82ad:_Odfiltrowanie_wszystkich_ma.C5.82ych_w
>arto.C5.9Bci" name="Przyk.C5.82ad:_Odfiltrowanie_wszystkich_ma.C5 
>.82ych_warto.C5.9Bci"> 
117      Przykład: Odfiltrowanie wszystkich małych wartości
118    </h4>
119    <p>
120      Poniższy przykład używa <code>filter</code> by utworzyć prz
>efiltrowaną tablicę, z której usunięto wszystkie elementy których 
> wartość wynosi mniej niż 10. 
121    </p>
122    <pre>
123function isBigEnough(element, index, array) {
124  return (element &gt;= 10);
125}
126filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
127</pre>
128    <p>
129      <br>
130    </p>
131    <div class="noinclude"></div>{{ languages( { "en": "en/Core_J
>avaScript_1.5_Reference/Global_Objects/Array/filter", "fr": "fr/R 
>\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Objets_globaux/Array/fi 
>lter", "ja": "ja/Core_JavaScript_1.5_Reference/Global_Objects/Arr 
>ay/filter" } ) }} 

Wróć do historii