Metode flatMap

Metode flatMap mengembalikan array baru, yang dibuat setelah setiap elemen array asli diterapkan callback, yang ditentukan dalam parameter metode. Pada pandangan pertama metode flatMap mirip dengan metode map, tetapi perbedaan utamanya adalah bahwa ia selalu mengembalikan array satu dimensi.

Sintaks

javascriptlet newArray = array.flatMap(fungsi);

Contoh

Mari kita dapatkan array baru, menggunakan metode flatMap:

javascriptlet arr = ['a', 'b', 'c'];

let res = arr.flatMap(function(elem) {
  return elem + '!';
});

console.log(res);

Hasil eksekusi kode:

javascript['a!', 'b!', 'c!']

Contoh

Mari kita dapatkan array baru dari array asli, yang terdiri dari angka:

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

let res = arr.flatMap(function(elem) {
  return elem + 2;
});

console.log(res);

Hasil eksekusi kode:

javascript[3, 4, 5, 6, 7]

Contoh

Mari kita coba terapkan metode flatMap ke array dengan tingkat bersarang pertama:

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

let res = arr.flatMap(function getElem(elem){
  return elem + 2;
});

console.log(res);

Setelah mengeksekusi kode kita akan melihat bahwa kondisi fungsi diterapkan ke sub-array, menganggapnya sebagai satu elemen. Oleh karena itu, pemanggilan metode ini pada array bersarang tidak masuk akal:

javascript[3, 4, 5, '4,52']

Contoh

Jika kita ingin tidak repot dengan tingkat nestedness, tapi menggabungkan seluruh array, maka kita gunakan parameter Infinity:

javascriptlet arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];

let res = arr.flatMap(Infinity);

console.log(res);

Hasil eksekusi kode:

javascript[
  'a', 'b', 'c',
  'd', 'e', 'f',
  'g', 'h', 'i'
]

Contoh

Mari kita terapkan dua metode ke array: flatMap dan map, dan dalam parameter kedua metode akan ditentukan fungsi yang membuat array dua dimensi:

javascriptlet arr = [1, 2, 3, 4, 5, 6];
let res1 = arr.map(elem => [elem * 3]);
let res2 = arr.flatMap(elem => [elem * 3]);

console.log('metode map', res1);
console.log('metode flatMap', res2);

Hasil eksekusi kode:

javascript'metode map' [[3], [6], [9], [12], [15], [18]]
'metode flatMap' [3, 6, 9, 12, 15, 18]

Lihat juga

  • metode flat,
    yang mengembalikan array dari sub-array