Semasa mengikuti kursus pengenalan tentang Javascript dan mempelajari tentang semua kaedah Array yang berbeza. Saya tidak begitu memahami kuasa sebenar kaedah mengurangkan dan hanya selepas kembali kepadanya untuk kali kedua barulah saya menyedari betapa benar-benar berguna kaedah ini. Saya harap artikel itu dapat menjelaskan kepada sesetengah orang tentang cara kaedah ini berfungsi dan bila hendak menggunakannya.
Array.prototype.reduce(Fungsi panggilan balik)
Array.prototype.reduce(callbackFunction, initialValue)
Kaedah reduce() memproses setiap elemen tatasusunan menggunakan fungsi panggil balik, mengumpul hasil menjadi satu nilai. Jika nilai awal disediakan, ia digunakan sebagai titik permulaan; jika tidak, elemen tatasusunan pertama digunakan dan lelaran bermula dari elemen kedua.
Fungsi panggil balik(akumulator, nilai semasa, indeks semasa, tatasusunan){}
Hasil terkumpul daripada lelaran sebelumnya atau nilai awal jika disediakan.
Nilai elemen tatasusunan semasa sedang diproses.
Indeks unsur semasa, bermula pada 0 jika nilai awal diberikan, jika tidak 1.
Tatasusunan di mana kaedah reduce() sedang dilaksanakan.
Apabila menggunakan kaedah kurangkan tanpa nilai awal, fungsi panggil balik akan mengambil elemen pertama tatasusunan dan memulakannya sebagai penumpuk dan kemudian lelaran melalui tatasusunan yang lain.
Contoh paling biasa yang anda akan temui menggunakan kaedah pengurangan ialah jumlah tatasusunan.
const ages = [23, 15, 45, 13, 66, 54, 38]; let sumOfAges = ages.reduce(function(sumOfAges, currentAge){ sumOfAges = sumOfAges + currentAge; return sumOfAges; }); // 254
Walaupun ya ini adalah kaedah pengurangan yang bagus dan bagus, banyak lagi yang boleh dilakukan.
const ages = [23, 15, 45, 13, 66, 54, 38]; let oldestPerson = ages.reduce(function(maxAge, currentAge){ if(currentAge>maxAge){ maxAge = currentAge; } return maxAge; }); // 66
Di sini kami menggunakan kaedah pengurangan untuk menyimpan umur tertinggi yang kami temui dalam tatasusunan dan mengembalikan nilai itu setelah diulang melalui keseluruhan tatasusunan.
const store = ['apple', 'pear', 'apple', 'orange', 'apple', 'pear']; let itemCatalogue = store.reduce(function(uniqueStoreItems, currentItem){ if(!uniqueStoreItems.includes(currentItem)){ uniqueStoreItems.push(currentItem); } return uniqueStoreItems; }, []); // ['apple', 'pear', 'orange']
Penting untuk diperhatikan di sini bahawa untuk nilai awal dalam kaedah pengurangan kami membekalkan tatasusunan kosong, []. Ini bermakna bahawa penumpuk kini adalah tatasusunan, dan fungsi panggil balik kami menolak hanya item yang belum ada dalam tatasusunan itu. Akibatnya kami telah mengalih keluar pendua.
const store = ['apple', 'pear', 'apple', 'orange', 'apple', 'pear']; let itemCount = store.reduce(function(count, currentItem){ count[currentItem] = (count[currentItem] || 0) + 1; return count; }, {}); // { apple: 3, pear: 2, orange: 1 }
Penting untuk diperhatikan di sini ialah nilai awal ialah objek kosong. Semasa kami menyemak item di kedai, kami mengisi item dengan kiraan.
Pertama sekali jika anda telah berjaya sejauh ini terima kasih kerana membaca! Matlamat utama saya untuk menulis artikel ini adalah untuk saya mengukuhkan pemahaman saya tentang kaedah pengurangan dan saya berharap anda mungkin belajar sesuatu yang baru di sini juga! Kaedah pengurangan mempunyai banyak aplikasi yang sangat keren dan sangat kemas untuk digunakan. Adakah anda mempunyai sebarang kes penggunaan lain atau helah yang menyeronokkan dengan kaedah tersebut? Saya ingin tahu!
Atas ialah kandungan terperinci Memahami Array.reduce(). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!