javaScript Arrays : Uelewa wa kupunguza kazi
syntax
arr.reduce(callbackFunction, [initialValue])
Je kupunguza kufanya?
Punguza ni kazi kwamba matanzi kupitia safu.
Operations unaweza kufanywa juu ya safu kupitia kazi ya kupiga tena.
Mwisho wa kazi tarehe safu, kupunguza mapato ya thamani moja
Punguza inaweza kutumika, kwa mfano, kwa jumla ununuzi gari
mfano
basi arr = [1,2,3,4,5];
arr.reduce( (accumulator, currentValue, currentIndex, safu) => {
//baadhi ya shughuli;
kurudi kitu;
});
Callback Kazi
kazi ya kupiga tena ni kutenguliwa kwa kila kipengele katika safu, kupita katika 4 hoja ambayo ni kupita katika na kupunguza kazi.
hizi 4 hoja kisha inaweza kutumika katika kupiga tena kazi yetu.
Inachukua hoja nne
- accumulator – sehemu ya kwanza ya safu ya kitanzi kwanza au thamani ya awali ikiwa hutolewa. Kisha akarudi thamani ya kitanzi uliopita.
- currentValue – kipengele sasa katika safu. Inaanza na kipengele cha pili katika safu yaani. arr[1], wakati awali Thamani ya hoja si kupita. Kama awali Thamani ya hoja kupita thamani kisha sasa kuanza kutoka kipengele katika safu ya 1 arr[0].
- currentIndex – index ya kipengele sasa.
- safu – safu nzima.
Kazi Mfano
basi arr = [1,2,3,4,5]; arr.reduce( (accumulator, currentValue, currentIndex, safu) => { console.log(`accumulator (Tarehe 1 kitanzi, accumulator ni arr[0], basi ni kurudi thamani ya kitanzi uliopita): ${accumulator}`); console.log(`currentValue (Loops kwa njia ya safu, kuanzia saa arr[1]): ${currentValue}`); console.log(`currentIndex: ${currentIndex}`); console.log(`safu: ${safu}`); console.log('---'); accumulator kurudi + currentValue; } );
pato
accumulator (Tarehe 1 kitanzi, accumulator ni arr[0], basi ni kurudi thamani ya kitanzi uliopita): 1 currentValue (Loops kwa njia ya safu, kuanzia saa arr[1]): 2 currentIndex: 1 safu: 1,2,3,4,5 --- accumulator (Tarehe 1 kitanzi, accumulator ni arr[0], basi ni kurudi thamani ya kitanzi uliopita): 3 currentValue (Loops kwa njia ya safu, kuanzia saa arr[1]): 3 currentIndex: 2 safu: 1,2,3,4,5 --- accumulator (Tarehe 1 kitanzi, accumulator ni arr[0], basi ni kurudi thamani ya kitanzi uliopita): 6 currentValue (Loops kwa njia ya safu, kuanzia saa arr[1]): 4 currentIndex: 3 safu: 1,2,3,4,5 --- accumulator (Tarehe 1 kitanzi, accumulator ni arr[0], basi ni kurudi thamani ya kitanzi uliopita): 10 currentValue (Loops kwa njia ya safu, kuanzia saa arr[1]): 5 currentIndex: 4 safu: 1,2,3,4,5 ---
Kutoa thamani ya awali
Kubainisha Kigezo cha pili (initialValue) katika kupunguza kazi kusababisha initialValue kupitishwa katika kama hoja accumulator kwenye kitanzi kwanza.
Kumbuka kwamba thamani ya sasa ya 1 kitanzi inaanza sasa katika sehemu ya kwanza ya safu
Kazi Mfano
basi arr = [1,2,3,4,5]; arr.reduce( (accumulator, currentValue, currentIndex, safu) => { console.log(`accumulator ( Tarehe 1 kitanzi, hii ni thamani ya awali, kisha akarudi thamani ya kitanzi uliopita): ${accumulator}`); console.log(`currentValue (Loops kwa njia ya safu, kuanzia saa arr[0]): ${currentValue}`); console.log(`currentIndex: ${currentIndex}`); console.log(`safu: ${safu}`); console.log('---'); accumulator kurudi + currentValue; }, 0 );
pato
accumulator ( Tarehe 1 kitanzi, hii ni thamani ya awali, kisha akarudi thamani ya kitanzi uliopita): 0 currentValue (Loops kwa njia ya safu, kuanzia saa arr[0]): 1 currentIndex: 0 safu: 1,2,3,4,5 --- accumulator ( Tarehe 1 kitanzi, hii ni thamani ya awali, kisha akarudi thamani ya kitanzi uliopita): 1 currentValue (Loops kwa njia ya safu, kuanzia saa arr[0]): 2 currentIndex: 1 safu: 1,2,3,4,5 --- accumulator ( Tarehe 1 kitanzi, hii ni thamani ya awali, kisha akarudi thamani ya kitanzi uliopita): 3 currentValue (Loops kwa njia ya safu, kuanzia saa arr[0]): 3 currentIndex: 2 safu: 1,2,3,4,5 --- accumulator ( Tarehe 1 kitanzi, hii ni thamani ya awali, kisha akarudi thamani ya kitanzi uliopita): 6 currentValue (Loops kwa njia ya safu, kuanzia saa arr[0]): 4 currentIndex: 3 safu: 1,2,3,4,5 --- accumulator ( Tarehe 1 kitanzi, hii ni thamani ya awali, kisha akarudi thamani ya kitanzi uliopita): 10 currentValue (Loops kwa njia ya safu, kuanzia saa arr[0]): 5 currentIndex: 4 safu: 1,2,3,4,5 ---
