मॉड्यूल पाठ (2/4)
कम करें
reduce कार्यात्मक सरणी विधियों में सबसे शक्तिशाली है: यह संग्रह के माध्यम से चलता है
एक संचायक रखना जिसे हर कदम पर अद्यतन किया जाता है। जब लूप समाप्त हो जाता है, तो यह वापस आ जाता है
संचायक.
हस्ताक्षर
arr.reduce((acc, elem) => nuovoAcc, valoreIniziale);accvaloreInizialeसे शुरू होता है।- प्रत्येक तत्व के लिए एक नया
accकी गणना की जाती है। - अंतिम परिणाम अंतिम
accहै।
मूल उदाहरण: योग और उत्पाद
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 पहले तत्व से शुरू होता है (संभावित रूप से खाली होने पर जोखिम भरा होता है)
सरणियाँ → त्रुटि)। जब भी संभव हो, हमेशा प्रारंभिक मान पास करें।
किसी वस्तु का निर्माण: गिनती
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 }अधिकतम/मिनट ढूँढना
const nums = [3, 7, 1, 9, 4];
const max = nums.reduce((a, n) => (n > a ? n : a), -Infinity);
// 9(व्यवहार में अधिकतम/मिनट के लिए Math.max(...nums) को प्राथमिकता दें; यह एक उपदेशात्मक उदाहरण है।)
इसे अजमाएं
`कुल(आइटम)` को परिभाषित करें: आपको वस्तुओं की एक श्रृंखला {कीमत, मात्रा} प्राप्त होती है और कुल खर्च (कीमत*मात्रा का योग) लौटाते हैं। उपयोग कम करें.
संकेत दिखाएँ
कम करें((ए, यह) => ए + इसकी कीमत * इसकी मात्रा, 0)
3 प्रयासों के बाद समाधान उपलब्ध है
व्यायाम की समीक्षा करें
`गिनती (शब्द)` को परिभाषित करें: स्ट्रिंग्स की एक सरणी दी गई है, एक ऑब्जेक्ट लौटाएं जो प्रत्येक स्ट्रिंग को घटनाओं की संख्या में मैप करता है। किसी ऑब्जेक्ट संचायक के साथ कम करें का उपयोग करें।
संकेत दिखाएँ
एसीसी[पी] = (एसीसी[पी] ?? 0) + 1; वापसी एसीसी;
3 प्रयासों के बाद समाधान उपलब्ध है