ஜாவா வரிசைகள் : செயல்பாடு குறைக்க புரிந்து

தொடரியல்

arr.reduce(callbackFunction, [initialValue])

என்ன செய்ய குறைக்க இல்லை?

குறைத்தல் ஒரு வரிசை மூலம் சுழல்கள் என்று ஒரு செயல்பாடு ஆகும்.

ஆபரேஷன்ஸ் ஒரு கோரிக்கை செயல்பாடு வழியாக வரிசையில் நிகழ்த்த முடியும்.

வரிசை செயல்பாட்டுத் முடிவில், வருமானத்தை ஒரு மதிப்பை குறைக்க

பயன்படுத்த முடியும் குறைத்தல், உதாரணத்திற்கு, வண்டியைப் மொத்தம்

உதாரணமாக

  வந்தடைவது = அனுமதிக்க [1,2,3,4,5];
  arr.reduce( (திரட்டி, தற்போதைய மதிப்பு, currentIndex, வரிசை) => { 
      //சில நடவடிக்கைகளை;
      ஏதாவது திரும்ப;
  });

 

திரும்பஅழைத்தல் விழா

கோரிக்கை செயல்பாடு வரிசையில் ஒவ்வொரு உறுப்பு செயல்படும், கடந்து செல்லும் 4 குறைக்க செயல்பாடு மூலம் நிறைவேற்றப்பட்டன அவை வாதங்கள்.

இந்த 4 வாதங்கள் பின்னர் எங்கள் கோரிக்கை செயல்பாடு பயன்படுத்த முடியும்.

நான்கு வாதங்கள் எடுக்கிறது

  1. திரட்டி – வழங்கப்பட்ட என்றால் முதல் லூப் அல்லது ஆரம்ப மதிப்பு வரிசை முதல் உறுப்பு. முந்தைய சுழற்சியில் பின்னர் திரும்பிய மதிப்பானது.
  2. தற்போதைய மதிப்பு – வரிசையில் தற்போதைய உறுப்பு. வரிசை அதாவது இரண்டாவது உறுப்பு இருந்து தொடங்குகிறது. வந்தடைவது[1], ஆரம்ப மதிப்பு கொடுக்கப்பட்டுள்ளது போது. ஆரம்ப மதிப்பு கொடுக்கப்பட்டுள்ளது உள்ளது என்றால் தற்போதைய மதிப்பு வரிசை வந்தடைவது 1 வது உறுப்பு இருந்து தொடங்குகிறது[0].
  3. currentIndex – தற்போதைய உறுப்பு குறியீட்டு.
  4. வரிசை – முழு வரிசை.

வேலை எடுத்துக்காட்டாக

வந்தடைவது = அனுமதிக்க [1,2,3,4,5];

arr.reduce(
  (திரட்டி, தற்போதைய மதிப்பு, currentIndex, வரிசை) => {
    console.log(`திரட்டி (1st லூப் மீது, திரட்டி வந்தடைவது உள்ளது[0], பின்னர் அது முந்தைய லூப் திரும்பும்போதும் மதிப்பு): ${திரட்டி}`);
    console.log(`currentValue (வரிசை மூலம் சுழல்கள், வந்தடைவது தொடங்கி[1]): ${தற்போதைய மதிப்பு}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`வரிசை: ${வரிசை}`);
    console.log('---');
    திரும்ப திரட்டி + தற்போதைய மதிப்பு;
  }
);

வெளியீடு

திரட்டி (1st லூப் மீது, திரட்டி வந்தடைவது உள்ளது[0], பின்னர் அது முந்தைய லூப் திரும்பும்போதும் மதிப்பு): 1
தற்போதைய மதிப்பு (வரிசை மூலம் சுழல்கள், வந்தடைவது தொடங்கி[1]): 2
currentIndex: 1
வரிசை: 1,2,3,4,5
---
திரட்டி (1st லூப் மீது, திரட்டி வந்தடைவது உள்ளது[0], பின்னர் அது முந்தைய லூப் திரும்பும்போதும் மதிப்பு): 3
தற்போதைய மதிப்பு (வரிசை மூலம் சுழல்கள், வந்தடைவது தொடங்கி[1]): 3
currentIndex: 2
வரிசை: 1,2,3,4,5
---
திரட்டி (1st லூப் மீது, திரட்டி வந்தடைவது உள்ளது[0], பின்னர் அது முந்தைய லூப் திரும்பும்போதும் மதிப்பு): 6
தற்போதைய மதிப்பு (வரிசை மூலம் சுழல்கள், வந்தடைவது தொடங்கி[1]): 4
currentIndex: 3
வரிசை: 1,2,3,4,5
---
திரட்டி (1st லூப் மீது, திரட்டி வந்தடைவது உள்ளது[0], பின்னர் அது முந்தைய லூப் திரும்பும்போதும் மதிப்பு): 10
தற்போதைய மதிப்பு (வரிசை மூலம் சுழல்கள், வந்தடைவது தொடங்கி[1]): 5
currentIndex: 4
வரிசை: 1,2,3,4,5
---

 

ஆரம்ப மதிப்பு வழங்குதல்

இரண்டாவது அளவுரு குறிப்பிடாமல் (தொடக்க மதிப்பு) குறைக்க செயல்பாடு initialValue முதல் வளையம் மீது திரட்டி வாதம் நிறைவேற்ற வேண்டும் என ஏற்படுத்தும்.

1st லூப் தற்போதைய மதிப்பு இப்போது வரிசை முதல் உறுப்பு தொடங்குகிறது என்பதை நினைவில் கொள்க

வேலை எடுத்துக்காட்டாக

  வந்தடைவது = அனுமதிக்க [1,2,3,4,5];

  arr.reduce(
  (திரட்டி, தற்போதைய மதிப்பு, currentIndex, வரிசை) => {
    console.log(`திரட்டி ( 1st லூப் மீது, இந்த ஆரம்ப மதிப்பு, முந்தைய வளைய திரும்பிய மதிப்பானது): ${திரட்டி}`);
    console.log(`currentValue (வரிசை மூலம் சுழல்கள், வந்தடைவது தொடங்கி[0]): ${தற்போதைய மதிப்பு}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`வரிசை: ${வரிசை}`);
    console.log('---');
    திரும்ப திரட்டி + தற்போதைய மதிப்பு;
  }, 0
);

வெளியீடு

திரட்டி ( 1st லூப் மீது, இந்த ஆரம்ப மதிப்பு, முந்தைய வளைய திரும்பிய மதிப்பானது): 0
தற்போதைய மதிப்பு (வரிசை மூலம் சுழல்கள், வந்தடைவது தொடங்கி[0]): 1
currentIndex: 0
வரிசை: 1,2,3,4,5
---
திரட்டி ( 1st லூப் மீது, இந்த ஆரம்ப மதிப்பு, முந்தைய வளைய திரும்பிய மதிப்பானது): 1
தற்போதைய மதிப்பு (வரிசை மூலம் சுழல்கள், வந்தடைவது தொடங்கி[0]): 2
currentIndex: 1
வரிசை: 1,2,3,4,5
---
திரட்டி ( 1st லூப் மீது, இந்த ஆரம்ப மதிப்பு, முந்தைய வளைய திரும்பிய மதிப்பானது): 3
தற்போதைய மதிப்பு (வரிசை மூலம் சுழல்கள், வந்தடைவது தொடங்கி[0]): 3
currentIndex: 2
வரிசை: 1,2,3,4,5
---
திரட்டி ( 1st லூப் மீது, இந்த ஆரம்ப மதிப்பு, முந்தைய வளைய திரும்பிய மதிப்பானது): 6
தற்போதைய மதிப்பு (வரிசை மூலம் சுழல்கள், வந்தடைவது தொடங்கி[0]): 4
currentIndex: 3
வரிசை: 1,2,3,4,5
---
திரட்டி ( 1st லூப் மீது, இந்த ஆரம்ப மதிப்பு, முந்தைய வளைய திரும்பிய மதிப்பானது): 10
தற்போதைய மதிப்பு (வரிசை மூலம் சுழல்கள், வந்தடைவது தொடங்கி[0]): 5
currentIndex: 4
வரிசை: 1,2,3,4,5
---