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 tablicyArray
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