ప్రధాన కంటెంట్‌కు వెళ్లండి
మాడ్యూల్ 6 · 4లో పాఠం 2కోర్సులో 22/32~12 min
మాడ్యూల్ పాఠాలు (2/4)

తగ్గించండి

reduce అనేది క్రియాత్మక శ్రేణి పద్ధతుల్లో అత్యంత శక్తివంతమైనది: ఇది సేకరణ ద్వారా నడుస్తుంది అడుగడుగునా నవీకరించబడే అక్యుమ్యులేటర్ని ఉంచడం. లూప్ ముగిసినప్పుడు, అది తిరిగి వస్తుంది సంచితం.

సంతకం

JS
arr.reduce((acc, elem) => nuovoAcc, valoreIniziale);
  • acc valoreInizialeకి ప్రారంభమవుతుంది.
  • ప్రతి మూలకం కోసం ఒక కొత్త acc గణించబడుతుంది.
  • తుది ఫలితం చివరి acc.

ప్రాథమిక ఉదాహరణలు: మొత్తం మరియు ఉత్పత్తి

JS
const numeri = [3, 1, 4, 1, 5];

const somma = numeri.reduce((a, n) => a + n, 0);
// 14

const prodotto = numeri.reduce((a, n) => a * n, 1);
// 60

ప్రారంభ విలువ లేకుండా, reduce మొదటి మూలకం నుండి ప్రారంభమవుతుంది (సంభావ్యంగా ఖాళీగా ఉంటే ప్రమాదకరం శ్రేణులు → లోపం). ఎల్లప్పుడూ ప్రారంభ విలువను పాస్ చేయండి మీకు వీలైనప్పుడు.

వస్తువును నిర్మించడం: లెక్కింపు

JS
const parole = ['mela', 'pera', 'mela', 'kiwi', 'mela'];

const conteggio = parole.reduce((acc, p) => {
  acc[p] = (acc[p] ?? 0) + 1;
  return acc;
}, {});
// { mela: 3, pera: 1, kiwi: 1 }

గరిష్ఠం / నిమి కనుగొనడం

JS
const nums = [3, 7, 1, 9, 4];

const max = nums.reduce((a, n) => (n > a ? n : a), -Infinity);
// 9

(ఆచరణలో గరిష్టంగా/నిమిషానికి Math.max(...nums)ని ఇష్టపడతారు; ఇది ఉపదేశ ఉదాహరణ.)

దీనిని ప్రయత్నించండి

వ్యాయామం#js.m6.l2.e1
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

`మొత్తం(ఐటెమ్‌లు)`ని నిర్వచించండి: మీరు ఆబ్జెక్ట్‌ల శ్రేణిని {ధర, పరిమాణం } స్వీకరిస్తారు మరియు మొత్తం ఖర్చును (ధర మొత్తం* పరిమాణం) వాపసు చేస్తారు. తగ్గించడానికి ఉపయోగించండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

తగ్గించు((a, it) => a + it.price * it.quantity, 0)

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది

వ్యాయామం సమీక్షించండి

వ్యాయామం#js.m6.l2.e2
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

`కౌంట్(పదాలు)`ని నిర్వచించండి: స్ట్రింగ్‌ల శ్రేణిని అందించి, ప్రతి స్ట్రింగ్‌ను సంఘటనల సంఖ్యకు మ్యాప్ చేసే వస్తువును తిరిగి ఇవ్వండి. ఆబ్జెక్ట్ అక్యుమ్యులేటర్‌తో తగ్గించడాన్ని ఉపయోగించండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

acc[p] = (acc[p] ?? 0) + 1; రిటర్న్ acc;

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది