Przekształcanie elementów tablicy - map
W jaki sposób przekształcić wszystkie elementy tablicy?
(interpretuje: Internet Explorer 9, Firefox, Opera, Chrome)
Array.prototype.map(callbackfn) Array.prototype.map(callbackfn, thisArg)
- Parametry:
Function
callbackfn - funkcja zwracająca nową wartość elementu i 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 przekształcić jedną tablicę w drugą, wykonując na każdym jej elemencie określoną funkcję. Elementy, które nie zostały jawnie dodane do tablicy, są pomijane. Nie zmienia oryginalnej tablicy, ale zwraca nową.
Przykład Array.prototype.map
var items = [3, 2, 1]; var f = function (x) { return -x; }; items.map(f); // [-3, -2, -1] 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 ? -value : value; }; tester = new GreaterThan(1); items.map(tester.test, tester); // [-3, -2, 1] items = [1, 2]; items[3] = 3; items.length; // 4 tester = new GreaterThan(0); items.map(tester.test, tester); // [-1, -2, undefined, -3] tester.tests; // 3 items[2] = undefined; items.length; // 4 tester = new GreaterThan(0); items.map(tester.test, tester); // [-1, -2, undefined, -3] tester.tests; // 4 items.map(null); // TypeError items.map(undefined); // TypeError items.map({}); // TypeError