Kaedah map
Kaedah map membolehkan anda menggunakan fungsi yang ditetapkan
untuk setiap elemen array.
Kaedah ini tidak mengubah array asal, sebaliknya
mengembalikan array yang diubah.
Kaedah ini menerima fungsi sebagai parameter, yang
akan dilaksanakan untuk setiap elemen array.
Apa yang dikembalikan oleh fungsi ini melalui return
untuk elemen array, akan menjadi nilai baharu
bagi elemen tersebut (rujuk contoh).
Tiga 3 parameter boleh dihantar ke dalam fungsi.
Sekiranya parameter ini wujud (ia tidak wajib),
maka yang pertama secara automatik akan menerima elemen
array, yang kedua akan menerima nombornya dalam array
(indeks), dan yang ketiga - array itu sendiri.
Sintaks
let arrayBaharu = array.map(function(elemen, indeks, array) {
kod
return elemenYangDiubah;
});
Contoh
Mari buat array, di mana setiap elemennya dua kali ganda daripada elemen sepadan dalam array permulaan:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem) {
return elem * 2;
});
console.log(res);
Keputusan pelaksanaan kod:
[2, 4, 6, 8, 10]
Contoh
Mari buat array, di mana setiap elemennya diperoleh seperti ini - nilai elemen didarabkan dengan nombor urutannya dalam array:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index) {
return elem * index;
});
console.log(res);
Keputusan pelaksanaan kod:
[0, 2, 6, 12, 20]
Contoh
Sekiranya perlu, parameter ketiga boleh menghantar array itu sendiri:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index, arr) {
// array arr akan boleh diakses di sini
});
Contoh
Kaedah map juga boleh digunakan untuk
melelar array multidimensi. Katakan, sebagai contoh,
diberikan array seperti berikut:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Mari kita larikan array ini melalui
map dan outputkan elemen-elemennya ke konsol:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
console.log(elem);
});
Hasilnya, console.log akan output [1,
2, 3], kemudian [4, 5, 6], kemudian
[7, 8, 9].
Seperti yang anda lihat, pembolehubah elem menerima
sub-array. Sekarang mari kita gunakan kaedah
map pada setiap sub-array dan kuasa duakan
setiap elemennya:
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);