Rumah  >  Artikel  >  hujung hadapan web  >  Memahami Array.reduce()

Memahami Array.reduce()

WBOY
WBOYasal
2024-08-22 19:09:03849semak imbas

Understanding Array.reduce()

pengenalan

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.

Kaedah

Array.prototype.reduce(Fungsi panggilan balik)
Array.prototype.reduce(callbackFunction, initialValue)

Apa sebenarnya kaedah ini lakukan?

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.

Parameter Fungsi Panggilan Balik

Fungsi panggil balik(akumulator, nilai semasa, indeks semasa, tatasusunan){}

penumpuk

Hasil terkumpul daripada lelaran sebelumnya atau nilai awal jika disediakan.

Nilai semasa

Nilai elemen tatasusunan semasa sedang diproses.

Indeks semasa

Indeks unsur semasa, bermula pada 0 jika nilai awal diberikan, jika tidak 1.

tatasusunan

Tatasusunan di mana kaedah reduce() sedang dilaksanakan.

Nilai Permulaan

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.

Kes guna

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.

Mendapat umur maksimum kumpulan

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.

Mengalih keluar Pendua dalam 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.

Mendapatkan Kiraan Item dalam Tatasusunan

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.

Kesimpulan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn