Przejdź do treści

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

Komentarze

Zobacz więcej komentarzy

Facebook