ماڈیول اسباق (2/4)
کم
reduce فنکشنل ارے طریقوں میں سب سے زیادہ طاقتور ہے: یہ مجموعہ کے ذریعے چلتا ہے
ایک جمع کرنے والا رکھنا جو ہر قدم پر اپ ڈیٹ ہوتا ہے۔ جب لوپ ختم ہوجاتا ہے، تو یہ واپس کرتا ہے۔
جمع کرنے والا
دستخط
arr.reduce((acc, elem) => nuovoAcc, valoreIniziale);accشروع ہوتا ہےvaloreInizialeسے۔- ہر عنصر کے لیے ایک نیا
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 پہلے عنصر سے شروع ہوتا ہے (ممکنہ طور پر خالی ہونے پر خطرناک
arrays → خرابی)۔ ہمیشہ ایک ابتدائی قدر کو پاس کریں جب آپ کر سکتے ہو۔
کسی چیز کی تعمیر: گنتی
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)؛ یہ ایک تدریسی مثال ہے۔)
اسے آزمائیں
'کل(آئٹمز)' کی وضاحت کریں: آپ کو اشیاء کی ایک صف موصول ہوتی ہے {قیمت، مقدار } اور کل خرچ واپس کرتے ہیں (قیمت کا مجموعہ* مقدار)۔ کم استعمال کریں۔
اشارہ دکھائیں۔
کم کریں((a, it) => a + it.price * it.quantity, 0)
3 کوششوں کے بعد حل دستیاب ہے۔
ورزش کا جائزہ لیں۔
'count(الفاظ)' کی وضاحت کریں: سٹرنگز کی ایک صف کو دیکھتے ہوئے، ایک ایسی چیز واپس کریں جو ہر اسٹرنگ کو وقوعات کی تعداد میں نقشہ بناتا ہے۔ آبجیکٹ جمع کرنے والے کے ساتھ کم استعمال کریں۔
اشارہ دکھائیں۔
acc[p] = (acc[p] ?? 0) + 1؛ واپسی acc
3 کوششوں کے بعد حل دستیاب ہے۔