Przejdź do treści

Operacje na tablicach w JavaScript - Array.prototype - JS

Odfiltrowywanie elementów tablicy - filter

W jaki sposób odfiltrować elementy tablicy, które nie spełniają podanego warunku?

(interpretuje: Internet Explorer 9, Firefox, Opera, Chrome)

Array.prototype.filter(callbackfn)
Array.prototype.filter(callbackfn, thisArg)
Parametry:
Function callbackfn - funkcja testująca przyjmująca argumenty:
  • kValue - element tablicy
  • Number k - indeks elementu tablicy
  • Array O - oryginalna tablica
thisArg - wartość bieżącego obiektu this dostępnego w czasie wywołania wewnątrz ciała funkcji (domyślnie: undefined)
Wartość:
Array - nowa tablica
Wyjątki:
TypeError - callbackfn nie jest funkcją

Pozwala pobrać z tablicy elementy, które spełniają określony warunek. Elementy, które nie zostały jawnie dodane do tablicy, są pomijane. Nie zmienia oryginalnej tablicy, ale zwraca nową.

Przykład Array.prototype.filter

var items = [3, 2, 1];
 
var f = function (x) {
    return x > 1;
};
items.filter(f);                   // [3, 2]
items;                             // [3, 2, 1]
 
var GreaterThan = function (value) {
    this.value = value;
    this.tests = 0;
};
GreaterThan.prototype.test = function (value) {
    ++this.tests;
    return value > this.value;
};
 
tester = new GreaterThan(2);
items.filter(tester.test, tester); // [3]
tester.tests;                      // 3
 
items = [1, 2];
items[3] = 3;
items.length;                      // 4
tester = new GreaterThan(0);
items.filter(tester.test, tester); // [1, 2, 3]
tester.tests;                      // 3
 
items[2] = undefined;
items.length;                      // 4
tester = new GreaterThan(0);
items.filter(tester.test, tester); // [1, 2, 3]
tester.tests;                      // 4
 
items.filter(null);                // TypeError
items.filter(undefined);           // TypeError
items.filter({});                  // TypeError

Komentarze

Zobacz więcej komentarzy

Facebook