موثرترین روش گروه بندی اشیای یک آرایه در جاوااسکریپت

mohsen2 هفته قبل
ارسال شده در
javascript

برای گروه‌بندی اشیای یک آرایه و جمع کردن مقادیر آن‌ها، می‌توانید از روش‌های مختلفی استفاده کنید. در اینجا چندین روش ساده و مؤثر ارائه می‌شود که می‌تواند به شما در این فرآیند کمک کند.

روش‌های گروه بندی

استفاده از تابع reduce

یکی از روش‌های متداول، استفاده از تابع reduce برای گروه بندی اشیا بر اساس یک کلید مشخص است. دراین‌جا یک نمونه پیاده‌سازی به شکل زیر است:

      const groupBy = (items, key) => items.reduce(
  (result, item) => {
    const groupKey = item[key];
    if (!result[groupKey]) {
      result[groupKey] = { ...item, Value: 0 }; // ابتدا مقدار Value را صفر قرار می‌دهیم
    }
    result[groupKey].Value += parseInt(item.Value); // به مقدار قبلی اضافه می‌کنیم
    return result;
  }, 
  {}
);

// استفاده از تابع
const groupedItems = groupBy(arrayOfObjects, "Phase"); // برای گروه‌بندی بر اساس Phase
const result = Object.values(groupedItems); // تبدیل به آرایه
console.log(result);

    

این کد آرایۀ ورودی شما را با توجه به کلید مشخص شده گروه‌بندی می‌کند و مجموع مقادیر Value را محاسبه می‌کند.

استفاده از Map

روش دیگر استفاده از شی Map در ES6 است که امکان ذخیره‌سازی کلیدها و مقادیر به شکل مؤثرتری را فراهم می‌کند:

      function groupBy(list, keyGetter) {
    const map = new Map();
    list.forEach((item) => {
         const key = keyGetter(item);
         const collection = map.get(key) || { ...item, Value: 0 };
         collection.Value += parseInt(item.Value);
         map.set(key, collection);
    });
    return Array.from(map.values());
}

// نمونه استفاده
const groupedItems = groupBy(arrayOfObjects, item => item.Phase);
console.log(groupedItems);

    

این روش نیز به صورت مشابه عمل می‌کند و برای هر کلید مجموع مقادیر را جمع آوری می‌کند.

رای
0
ارسال نظر
مرتب سازی:
اولین نفری باشید که نظر می دهید!