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

javascriptlet 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:

javascriptlet arr = [1, 2, 3, 4, 5];

let res = arr.map(function(elem) {
  return elem * 2;
});

console.log(res);

Keputusan pelaksanaan kod:

javascript[2, 4, 6, 8, 10]

Contoh

Mari buat array, di mana setiap elemennya diperoleh seperti ini - nilai elemen didarabkan dengan nombor urutannya dalam array:

javascriptlet arr = [1, 2, 3, 4, 5];

let res = arr.map(function(elem, index) {
  return elem * index;
});

console.log(res);

Keputusan pelaksanaan kod:

javascript[0, 2, 6, 12, 20]

Contoh

Sekiranya perlu, parameter ketiga boleh menghantar array itu sendiri:

javascriptlet 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:

javascriptlet arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];

Mari kita larikan array ini melalui map dan outputkan elemen-elemennya ke konsol:

javascriptlet 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:

javascriptlet 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);

Lihat juga

  • kaedah forEach,
    yang menggunakan fungsi untuk setiap elemen array
  • kaedah filter,
    yang membolehkan menapis elemen array
  • kaedah some dan every,
    yang melakukan pengesahan array
  • kaedah reduce dan reduceRight,
    yang meringkaskan array kepada satu nilai