
Ketika datang ke kode dalam JavaScript, pengembang menemukan mengurangi fungsi sebagai salah satu konsep yang paling sulit untuk dipecahkan. Menurut Wikipedia, Reduce memiliki beberapa nama yaitu. Akumulasi, Lipat, Kompres, dan Agregat. Nama-nama ini dengan jelas menunjukkan arti & fungsi pengurangan fungsi. Gagasan di balik ini adalah memecah struktur menjadi nilai tunggal. Oleh karena itu, Mengurangi dapat didefinisikan sebagai fungsi yang mengubah daftar menjadi tipe data apa pun.
Misalnya, Anda dapat mengurangi array [5,4,3,2,1] menjadi nilai 15 dengan hanya menambahkannya.Fungsi Reduce menjauhkan pengembang dari menggunakan loop untuk melipat daftar menjadi satu nilai.
Di blog ini, Anda akan mempelajari cara menerapkan fungsi terkenal menggunakan pengurangan seperti yang sudah dilakukan oleh pengembang di
perusahaan pengembang perangkat lunak teratas .
Saya telah mendaftarkan 10 fungsi utilitas JavaScript yang dibuat menggunakan fungsi pengurangan. Jadi, periksa fungsi-fungsi berikut: -Parameter yang digunakan
array (untuk mengubah daftar item), mentransformasikan Fungsi (adalah fungsi yang digunakan untuk berjalan pada setiap elemen)
Bekerja
Dengan menggunakan transformFunction yang diberikan, setiap elemen dalam array yang diberikan ditransformasi dan mengembalikan array item baru.
Bagaimana cara mengimplementasikannya?
const map = (transformFunction, array1) => array1.reduce((newArray1, xyz) => { newArray1.push(transformFunction(xyz)); return newArray1; }, [] );
Gunakan kasus:
const double = (x) => x * 2; const reverseString = (string) => string .split('') .reverse() .join(''); map(double, [200, 300, 400]); Output: [400, 600, 800] map(reverseString, ['Hello Alka', 'I love cooking']);
Parameter yang digunakan
array (daftar item / nilai untuk disaring), predikat (fungsi mengembalikan nilai benar atau salah)
Bekerja
Tolak memiliki perilaku berlawanan untuk memfilter tetapi sama seperti itu. Jika predikat mengembalikan nilai palsu maka hanya item yang akan ditambahkan ke array baru. Jika tidak, item tersebut akan dikeluarkan dari array baru.
Bagaimana cara mengimplementasikannya?
const reject = (predicate, arr3) => arr3.reduce((newArray, val3) => { if (predicate(val3) === false) { newArray.push(val3); } return newArray; }, [] );
Gunakan kasus:
const isEven = (z) => z % 2 === 0; reject(isEven, [1, 6, 4, 3]);
Parameter yang digunakan
array (daftar item), peredam (adalah fungsi yang menerima dua parameter yaitu akumulator & elemen saat ini dari daftar array)
Bekerja
Kerjanya mirip dengan mengurangi tetapi alih-alih mengembalikan nilai tunggal sebagai hasilnya, ia mengembalikan daftar setiap nilai yang dikurangi sesuai dengan output tunggal.
Bagaimana cara mengimplementasikannya?
const scan = (reducer, initialVal, array) => { const reducedValues = []; array.reduce((acc, currentval) => { const newAcc = reducer(acc, currentval); reducedValues.push(newAcc); return newAcc; }, initialVal); return reducedValues; };
Gunakan kasus:
const add = (y, z) => y + z; const multiply = (y, z) => y * z; scan(add, 0, [1, 2, 3, 4]);
Parameter yang digunakan
array (untuk memfilter daftar item), predikat (adalah fungsi untuk mengembalikan nilai false atau true)
Bekerja
Di sini, Anda akan mendapatkan array baru sebagai output. Jika fungsi predikat mengembalikan nilai sebenarnya maka item akan ditambahkan ke array baru. Namun, jika ia mengembalikan false maka item tersebut akan dikeluarkan dari array baru.
Bagaimana cara mengimplementasikannya?
const filter = (predicate, arr1) => arr1.reduce((newArray, val) => { if (predicate(val) === true) { newArray.push(val); } return newArray; }, [ ] );
Gunakan kasus:
const isEven = (y) => y % 2 === 0; filter(isEven, [3, 2, 5]);
Parameter yang digunakan
array (daftar item untuk diuji), predikat (berfungsi untuk mengembalikan nilai benar atau salah)
Bekerja
Di sini, tidak ada yang mengembalikan nilai benar jika predikat mengembalikan nilai palsu untuk setiap item. Jika tidak, akan mengembalikan nilai palsu untuk setiap nilai predikat sebenarnya.
Bagaimana cara mengimplementasikannya?
const none = (predicate, array) => array.reduce((acc1, val1) => !acc1 && !predicate(val1), false);
Gunakan kasus:
const isEven2 = (x) => x % 2 === 0; none(isEven2, [1, 3, 5]);
Parameter yang digunakan
array (berisi daftar item), predikat (fungsi yang mengembalikan nilai false atau true)
Bekerja
Ini mendefinisikan pemisahan array menjadi dua berdasarkan nilai predikat. Jika predikat mengembalikan nilai sebenarnya maka item tersebut akan masuk ke list1. Lain, itu akan masuk ke daftar2. Metode untuk membagi array menjadi berbagai potongan telah digunakan oleh programmer modern yang terkait dengan perusahaan pengembangan perangkat lunak teratas. Mari kita lihat langkah-langkah selanjutnya:
Bagaimana cara mengimplementasikannya?
const partition = (predicate, array) => array.reduce( (result3, item) => { const [list1, list2] = result; if (predicate(item) === true) { list1.push(item); } else { list2.push(item); } return result3; }, [ [], [] ] );
Gunakan kasus:
const isEven = (z) => z % 2 === 0; partition(isEven, [1, 2, 3]);
Parameter yang digunakan
array (untuk menguji daftar item), predikat (adalah fungsi untuk mengembalikan nilai benar atau salah)
Bekerja
Pada memberikan nilai input, jika predikat mengembalikan nilai true maka semua akan mengembalikan nilai true. Jika tidak, itu akan mengembalikan nilai yang salah.
Bagaimana cara mengimplementasikannya?
const all = (predicate, array) => array.reduce((arr, val) => arr && predicate(val), true);
Gunakan kasus:
const sequl3 = (x) => x === 3; all(sequl3, [3]);
Parameter yang digunakan
array (untuk menguji daftar item), predikat (adalah fungsi untuk mengembalikan nilai benar atau salah)
Bekerja
Untuk nilai input apa pun, jika predikat mengembalikan true, maka beberapa akan mengembalikan true. Jika tidak, itu akan mengembalikan nilai yang salah.
Bagaimana cara mengimplementasikannya?
Mari kita ambil contoh untuk itu: const some = (predicate, array) => array.reduce((arc, val) => arc || predicate(val), false);
Gunakan kasus:
const aqua3 = (x) => x === 3; some(aqua3, [3]);
Parameter yang digunakan
array (untuk menyimpan nilai item), kunci (untuk memetik nama kunci dari objek)
Bekerja
Itu dapat memetik kunci yang diberikan dari setiap item dalam array dan selanjutnya mengembalikan array baru dari nilai masing-masing.
Bagaimana cara mengimplementasikannya?
const pluck = (key3, array) => array.reduce((values3, current) => { values.push(current[key3]); return values3; }, [] );
Gunakan kasus:
pluck('name', [{ name: 'Soman' }, { name: 'Rovin' }, { name: 'Jojo' }]);
Parameter yang digunakan
array (untuk mencari item dalam daftar array), predikat (fungsi yang mengembalikan nilai false atau true)
Bekerja
Ini akan mengembalikan elemen pertama yang cocok dengan predikat yang diberikan dan jika tidak ada kecocokan yang ditemukan, maka undefined dikembalikan.
Bagaimana cara mengimplementasikannya?
const find = (predicate, array) => array.reduce((output, item) => { if (output !== undefined) { return output; } if (predicate(item) === true) { return item; } return undefined; }, undefined);
Gunakan kasus:
const isEven = (a) => a % 2 === 0; find(isEven, []);
Catatan Akhir:
Ini adalah bagaimana Anda dapat mengimplementasikan fungsi utilitas JavaScript menggunakan pengurangan dalam waktu yang lebih singkat. Ini pasti akan membantu pengembang perangkat lunak dalam menghemat waktu serta upaya pengkodean mereka. Jika Anda membutuhkan dukungan yang sempurna untuk permintaan kode Anda, Anda dapat menghubungi perusahaan pengembang perangkat lunak ahli untuk kebutuhan proyek Anda.