মূল কন্টেন্টে যান
মডিউল 6 · 2-এর পাঠ 4কোর্সে 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 প্রচেষ্টার পরে উপলব্ধ