Metode map
Metode map memungkinkan untuk menerapkan fungsi yang diberikan
untuk setiap elemen array. Pada
saat yang sama, metode tidak mengubah array asli, tetapi
mengembalikan array yang diubah.
Metode dalam parameter menerima fungsi, yang
akan dieksekusi untuk setiap elemen array.
Apa yang dikembalikan fungsi ini melalui return
untuk elemen array, akan menjadi nilai baru
dari elemen tersebut (lihat contoh).
Ke dalam fungsi dapat diteruskan 3 parameter.
Jika parameter ini ada (tidak wajib),
maka secara otomatis ke parameter pertama akan masuk elemen
array, ke parameter kedua akan masuk nomornya dalam array
(indeks), dan ke parameter ketiga - array itu sendiri.
Sintaksis
let arrayBaru = array.map(function(elemen, indeks, array) {
kode
return elemenYangDiubah;
});
Contoh
Mari buat array, di mana setiap elemennya dua kali lipat lebih besar dari elemen yang sesuai pada array awal:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem) {
return elem * 2;
});
console.log(res);
Hasil eksekusi kode:
[2, 4, 6, 8, 10]
Contoh
Mari buat array, di mana setiap elemennya diperoleh seperti ini - nilai elemen dikalikan dengan nomor urutnya dalam array:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index) {
return elem * index;
});
console.log(res);
Hasil eksekusi kode:
[0, 2, 6, 12, 20]
Contoh
Jika diperlukan, ke parameter ketiga dapat diteruskan array itu sendiri:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index, arr) {
// array arr akan dapat diakses di sini
});
Contoh
Metode map juga dapat digunakan untuk
menelusuri array multidimensi. Misalnya,
diberikan array seperti ini:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Mari kita telusuri array ini melalui
map dan tampilkan elemen-elemennya di konsol:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
console.log(elem);
});
Sebagai hasilnya, console.log akan menampilkan [1,
2, 3], kemudian [4, 5, 6], kemudian
[7, 8, 9].
Seperti yang Anda lihat, ke dalam variabel elem masuk
sub-array. Sekarang mari terapkan metode
map ke setiap sub-array dan pangkatkan
setiap elemennya menjadi kuadrat:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
return elem.map(function(num) {
return num * num;
});
});
console.log(result);