حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
آموزش جاوااسکریپت تکمیلی؛ توابع و پردازش داده

رفع باگ گروه‌بندی با reduce در جاوااسکریپت؛ اعضای تیم

تجمیع داده‌ها در جاوااسکریپت با reduce · 0٪

✍️ گروه‌بندی شبیه شمارش است، ولی به جای یک عدد برای هر کلید، یک آرایه نگه می‌داریم. وقتی عضو تازه‌ای برای یک تیم میاد، باید نامش به آرایه قبلی آن تیم اضافه بشه. ساختن آرایه تازه برای هر بار دیده شدن تیم، اطلاعات اعضای قبلی را از بین می‌بره.

مثلاً اگر دو کتاب با دسته «علمی» داشته باشیم، گروه علمی باید هر دو عنوان را نگه داره. فقط اولین بار که دسته دیده می‌شه، آرایه خالی می‌سازیم؛ سپس عنوان فعلی را push می‌کنیم. ترتیب داخل هر گروه هم همان ترتیب ظاهر شدن در ورودی است، مگر این‌که خودمان بعداً مرتبش کنیم.

در تمرین، خروجی برای هر تیم آرایه نام‌هاست. لازم نیست نام‌ها را یکتا کنی؛ دو عضو هم‌نام هنوز دو داده جدا هستند. خطای اصلی کد خراب اینه که groups[team] در هر دور از نو نوشته می‌شه. با یک بررسی وجود گروه، داده قبلی را حفظ کن. ورودی خالی هم باید شیء خالی بده و هیچ گروه ساختگی در گزارش ظاهر نشه.

فعالیت شما

groupByTeam(members) را اصلاح کن. هر عضو شیئی با team برابر 'red' یا 'blue' و name رشته است. خروجی شیئی از آرایه نام‌ها با ترتیب ورودی و حفظ تکرار باشد؛ [{team:'red',name:'آوا'},{team:'red',name:'نیما'}] => {red:['آوا','نیما']}. خالی => {}.

مطالعهٔ این گام برای همه آزاد است

برای پاسخ‌دادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیت‌ها را داشته باشید.

برای انجام فعالیت وارد شوید

فعالیت‌های این بخش به اشتراک فعال نیاز دارند. تهیهٔ اشتراک

برای انجام فعالیت‌ها ابتدا این دوره‌های پیش‌نیاز را تکمیل کنید:

کد اولیهٔ فعالیت

function groupByTeam(members) {
  return members.reduce((groups, member) => {
    // TODO: آرایه قبلی تیم را نگه دار و نام را اضافه کن.
    return groups;
  }, {});
}