Operacje na tablicach w JavaScript - Array.prototype - JS
Iterowanie po elementach tablicy - forEach
W jaki sposób przejść kolejno po wszystkich elementach tablicy?
(interpretuje: Internet Explorer 9, Firefox, Opera, Chrome)
Array.prototype.forEach(callbackfn) Array.prototype.forEach(callbackfn, thisArg)
- Parametry:
Function
callbackfn - funkcja zwrotna 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) - Wyjątki:
TypeError
- callbackfn nie jest funkcją
Pozwala przejrzeć kolejno wszystkie elementy tablicy. Elementy, które nie zostały jawnie dodane do tablicy, są pomijane.
Nie ma możliwości przerwania w rozsądny sposób przeglądania tablicy przed jej końcem. W takim przypadku lepiej użyć pętli for
albo ewentualnie funkcji Array.prototype.some bądź Array.prototype.every.
Przykład Array.prototype.forEach
var items = [3, 2, 1]; var sum = 0; var f = function (x) { sum += x; }; items.forEach(f); sum; // 6; var GreaterThan = function (value) { this.value = value; this.tests = 0; this.sum = 0; }; GreaterThan.prototype.test = function (value) { ++this.tests; if (value > this.value) { this.sum += value; return true; } return false; }; var tester = new GreaterThan(0); items.forEach(tester.test, tester); tester.sum; // 6 tester = new GreaterThan(1); items.forEach(tester.test, tester); tester.sum; // 5 // Przerwanie pętli w trakcie: tester = new GreaterThan(2); items.every(tester.test, tester); tester.sum; // 3 tester.tests; // 2 items = [1, 2]; items[3] = 3; items.length; // 4 tester = new GreaterThan(0); items.forEach(tester.test, tester); tester.sum; // 6 tester.tests; // 3 items[2] = undefined; items.length; // 4 tester = new GreaterThan(0); items.forEach(tester.test, tester); tester.sum; // 6 tester.tests; // 4 items.forEach(null); // TypeError items.forEach(undefined); // TypeError items.forEach({}); // TypeError