موثرترین روش گروه بندی اشیای یک آرایه در جاوااسکریپت
mohsen•2 هفته قبل
ارسال شده در
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
ارسال نظر
مرتب سازی:
اولین نفری باشید که نظر می دهید!