Array ForEach JavaScript: Sintaks dan Contoh Penggunaan
forEach()
merupakan method array di JavaScript yang mengeksekusi fungsi yang disediakan sekali untuk setiap elemen array.
Method ini mengembalikan nilai undefined
dan tidak mengubah array asli, tapi jika dibutuhkan kita bisa memodifikasi array sumber di dalam badan fungsi.
forEach()
bisa menjadi alternatif perulangan for
, kode kita akan menjadi lebih ringkas dibanding menggunakan for
.
Mari kita pelajari lebih lanjut method array forEach()
mulai dari sintaks hingga contoh penggunaannya.
Sintaks
// arrow function
forEach((elemen, indeks, array) => { ... })
// callback function
forEach(callbackFn, thisValue)
Parameter
callbackFn
: fungsi yang akan dieksekusi untuk setiap elemen array. Menerima arguman berikut:elemen
: elemen saat ini.indeks
(opsional): indeks elemen saat ini.array
(opsional): array sumber.
thisValue
(opsional): Nilaithis
saatcallbackFn
dieksekusi.
Nilai Kembalian
Mengembalikan nilai undefined
.
Contoh
Melihat Nilai Argumen elemen
, index
dan array
Nilai setiap argumen bergantung pada array sumber, mari kita gunakan contoh.
const numbers = [1, 5, 6, 8, 9, 3];
numbers.forEach((elemen, indeks, array) => {
console.log('elemen:', elemen, 'indeks:', indeks, 'array:', array);
});
/* output:
elemen: 1 indeks: 0 array: [ 1, 5, 6, 8, 9, 3 ]
elemen: 5 indeks: 1 array: [ 1, 5, 6, 8, 9, 3 ]
elemen: 6 indeks: 2 array: [ 1, 5, 6, 8, 9, 3 ]
elemen: 8 indeks: 3 array: [ 1, 5, 6, 8, 9, 3 ]
elemen: 9 indeks: 4 array: [ 1, 5, 6, 8, 9, 3 ]
elemen: 3 indeks: 5 array: [ 1, 5, 6, 8, 9, 3 ]
*/
Perhatikan kode di atas, karena fungsi dieksekusi untuk setiap elemen array maka nilai elemen
dan indeks
berubah sesuai dengan elemen saat ini, sedangkan array
mengembalikan array sumber.
Anda dapat menentukan sendiri nama setiap argumen sesuai keinginan, yang perlu diperhatikan adalah urutannya.
Kita juga bisa mengekstrak fungsi callback seperti berikut, ini akan mengembalikan hasil yang sama persis seperti contoh di atas.
const numbers = [1, 5, 6, 8, 9, 3];
const callbackFn = (elemen, indeks, array) => {
console.log('elemen:', elemen, 'indeks:', indeks, 'array:', array);
};
numbers.forEach(callbackFn);
/* output:
elemen: 1 indeks: 0 array: [ 1, 5, 6, 8, 9, 3 ]
elemen: 5 indeks: 1 array: [ 1, 5, 6, 8, 9, 3 ]
elemen: 6 indeks: 2 array: [ 1, 5, 6, 8, 9, 3 ]
elemen: 8 indeks: 3 array: [ 1, 5, 6, 8, 9, 3 ]
elemen: 9 indeks: 4 array: [ 1, 5, 6, 8, 9, 3 ]
elemen: 3 indeks: 5 array: [ 1, 5, 6, 8, 9, 3 ]
*/
Memodifikasi Array Sumber
forEach
tidak mengubah array sumber, tapi kita bisa mengubah secara manual di badan fungsi callback.
Contoh berikut mengubah array sumber dengan menjumlahkan setiap elemen dengan 2
.
const numbers = [1, 5, 6, 8, 9, 3];
numbers.forEach((elemen, index) => {
numbers[index] = elemen + 2;
});
console.log(numbers); // [ 3, 7, 8, 10, 11, 5 ]
Kita dapat memodifikasi setiap elemen array sumber sesuai keinginan, termasuk menghapus, menambah, mengakses, atau mengubah.
Mengubah Perulangan for
ke forEach
forEach
bisa menjadi alternatif untuk perulangan for
, tapi jauh lebih ringkas.
Mari kita gunakan contoh penggunaan for
terlebih dahulu, misalnya kita akan menyalin elemen array users
ke array baru copyUsers
.
const users = ['ucup', 'budi', 'bambang'];
const copyUsers = [];
for (let i = 0; i < users.length; i++) {
copyUsers.push(users[i]);
}
console.log(users); // [ 'ucup', 'budi', 'bambang' ]
console.log(copyUsers); // [ 'ucup', 'budi', 'bambang' ]
Mari kita ubah kode di atas menggunakan forEach()
.
const users = ['ucup', 'budi', 'bambang'];
const copyUsers = [];
users.forEach((user) => copyUsers.push(user));
console.log(users); // [ 'ucup', 'budi', 'bambang' ]
console.log(copyUsers); // [ 'ucup', 'budi', 'bambang' ]
Lihat, kode kita jadi lebih ringkas jika menggunakan forEach
tapi kita tetap mendapatkan hasil yang sama dengan contoh for
.