(Kode ditaruh di stackblitz karena sudah terlalu panjang)
forEach()
map()
filter()
reduce()
sort()
forEach()
forEach()
(ii)Mari kita lihat contoh penggunaan forEach()
const arrAngka = [1, 2, 3, 4, 5];
// di sini callback forEach menerima sebuah parameter
// yaitu function callback
// yang menerima minimal 1 parameter, maksimal 3 parameter
// parameter ke-1: nama dari element
// parameter ke-2: indeks / urutan ke berapa (OPTIONAL)
// parameter ke-3: array yang sedang di looping (OPTIONAL, JARANG DIPAKAI)
arrAngka.forEach((aliasUntukElement) => {
console.log('Hasil kali duanya adalah: ' + aliasUntukElement * 2);
});
// di sini kita mencoba menggunakan parameter ke-1 dan ke-2
arrAngka.forEach((alias, urutanKeBerapa) => {
console.log('Urutan : ' + urutanKeBerapa + ' Kali 3: ' + alias * 3);
});
map()
map()
(ii)Mari kita lihat contoh penggunaan map()
const arrString = ['ini', 'hanyalah', 'string', 'saja'];
// callback map menerima jumlah parameter yang sama dengan forEach
// minimal 1 parameter, maksimal 3 parameter
// misalnya ingin menambahkan kata 'testing' untuk setiap stringnya
const arrModifikasi = arrString.map((aliasUntukElement) => {
// JANGAN LUPA untuk menggunakan return
// yang direturn adalah element yang akan
// dikembalikan setelah dilakukan modifikasi
return 'testing ' + aliasUntukElement;
});
// ingat bahwa jumlah kembalian dari map
// akan sama persis dengan array originalnya
// (bila awalnya ada 100, maka akan dibuat 100 juga)
console.log(arrModifikasi);
map()
(iii)Apabila memanfaatkan arrow function dengan baik ...
const arrString = ['ini', 'hanyalah', 'string', 'saja'];
// Mari kita menggunakan arrow function yang "malas"
const arrModifikasi = arrString.map((element) => 'testing ' + element);
console.log(arrModifikasi);
Mantap kan ?
filter()
filter() (ii)
Mari kita lihat contoh penggunaan filter()
const arrInteger = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// Filter menerima sebuah callback (function)
// yang punya jumlah parameter sama dengan map (min 1, max 3)
const arrGenap = arrInteger.filter((element) => {
// return kondisi filternya di sini
// ingat di sini karena kondisi, truthy / falsy yah !
let kondisiFilter = element % 2 === 0;
return kondisiFilter;
});
console.log(arrGenap);
// bila arrow function dimanfaatkan maksimal
const arrGanjil = arrInteger.filter((element) => element % 2 === 1);
console.log(arrGanjil);
reduce()
reduce() (ii)
reduce() (iii)
Banyak yah ?
reduce() (iv)
Mari kita lihat contoh penggunaan reduce()
const arrAngka = [2, 4, 6, 8, 10];
// parameter pertama, callback
// parameter kedua, nilaiAwal
const nilaiTerreduce = arrAngka.reduce(
// ini fnCallback-nya
(nilaiSebelumnya, nilaiSekarang) => {
// jangan lupa return
return nilaiSebelumnya + nilaiSekarang;
},
// ini nilaiAwalnya
0
);
console.log(nilaiTerreduce); // 30
Bingung? mari kita lihat cara kerjanya yah !
reduce() (v)
Representasi reduce() per langkah
index | accumulator | nilaiSekarang | array | kembalian |
---|---|---|---|---|
0 | 0 | 2 | [2,4,6,8,10] |
0 + 2 = 2 |
1 | 2 | 4 | [2,4,6,8,10] |
2 + 4 = 6 |
2 | 6 | 6 | [2,4,6,8,10] |
6 + 6 = 12 |
3 | 12 | 8 | [2,4,6,8,10] |
12 + 8 = 20 |
4 | 20 | 10 | [2,4,6,8,10] |
20 + 10 = 30 |
Contoh data dengan format XML
<?xml version="1.0" encoding="UTF-8"?>
<!-- Ini cara penulisan comment -->
<!-- Tidak ada format umum / standarnya -->
<data-pembuka>
<data-dalam-pertama>5</data-dalam-pertama>
<data-dalam-kedua>Ini data kedua</data>
<bisa-nested-juga>
<ini-data-dalam-nested>10</ini-data-dalam-nested>
</bisa-nested-juga>
</data-pembuka>
Contoh data dengan format CSV
id,nama,alamat
1,Alamanda,Jl. Fakfak No. 1
2,Butiran,Jl. Legian No. 2
3,Chacha,Jl. Taliwang Pedas
Contoh data dengan format JSON
[
{ "id": 1, "nama": "Alamanda", "alamat": "Jl. Fakfak No. 1" },
{ "id": 2, "nama": "Butiran", "alamat": "Jl. Legian No. 2" },
{ "id": 3, "nama": "Chacha", "alamat": "Jl. Taliwang Pedas"}
]
Mari kita melihat contoh kode untuk membaca data JSON
Klik di sini(Kode ditaruh di stackblitz karena sudah terlalu panjang)
Lalu bagaimana untuk fsWriteFile()?