Metode JavaScript Array map () membuat larik baru dengan hasil pemanggilan fungsi untuk setiap elemen larik.
Sintaks dari map()
metode ini adalah:
arr.map(callback(currentValue), thisArg)
Di sini, arr adalah sebuah array.
map () Parameter
The map()
Metode mengambil di:
- callback - Fungsi yang dipanggil untuk setiap elemen array. Nilai kembaliannya ditambahkan ke array baru. Dibutuhkan:
- currentValue - Elemen saat ini sedang diteruskan dari larik.
- thisArg (opsional) - Nilai untuk digunakan seperti
this
saat menjalankan callback. Secara default, iniundefined
.
Kembalikan nilai dari peta ()
- Mengembalikan array baru dengan elemen sebagai nilai yang dikembalikan dari
callback
fungsi untuk setiap elemen.
Catatan :
map()
tidak mengubah larik asli.map()
dijalankancallback
sekali untuk setiap elemen array secara berurutan.map()
tidak dijalankancallback
untuk elemen array tanpa nilai.
Contoh 1: Memetakan elemen array menggunakan fungsi kustom
const prices = (1800, 2000, 3000, 5000, 500, 8000); let newPrices = prices.map(Math.sqrt); // ( 42.42640687119285, 44.721359549995796, 54.772255750516614, // 70.71067811865476, 22.360679774997898, 89.44271909999159 ) console.log(newPrices); // custom arrow function const string = "JavaScript"; const stringArr = string.split(''); // array with individual string character let asciiArr = stringArr.map(x => x.charCodeAt(0)); // map() does not change the original array console.log(stringArr); // ('J', 'a', 'v', 'a','S', 'c', 'r', 'i', 'p', 't') console.log(asciiArr); // ( 74, 97, 118, 97, 83, 99, 114, 105, 112, 116 )
Keluaran
(42.42640687119285, 44.721359549995796, 54.772255750516614, 70.71067811865476, 22.360679774997898, 89.44271909999159) ('J', 'a', 'v', 'a', 'S', 'c', 'r', 'S', 'c', 'r', 'S', 'c', 'r' 't') (74, 97, 118, 97, 83, 99, 114, 105, 112, 116)
Contoh 2: map () untuk elemen objek dalam larik
const employees = ( ( name: "Adam", salary: 5000, bonus: 500, tax: 1000 ), ( name: "Noah", salary: 8000, bonus: 1500, tax: 2500 ), ( name: "Fabiano", salary: 1500, bonus: 500, tax: 200 ), ( name: "Alireza", salary: 4500, bonus: 1000, tax: 900 ), ); // calculate the net amout to be given to the employees const calcAmt = (obj) => ( newObj = (); newObj.name = obj.name; newObj.netEarning = obj.salary + obj.bonus - obj.tax; return newObj; ); let newArr = employees.map(calcAmt); console.log(newArr);
Keluaran
((name: 'Adam', netEarning: 4500), (name: 'Noah', netEarning: 7000), (name: 'Fabiano', netEarning: 1800), (name: 'Alireza', netEarning: 4600))
Catatan : map()
menetapkan undefined
ke array baru jika callback
fungsinya kembali undefined
atau tidak sama sekali.
Bacaan yang Direkomendasikan: JavaScript Array filter ()