Middle+
Реализи кунед методи Array.prototype.groupBy, ки нусхаи сохторӣшудаи массиви объектҳоро бармегардонад, ки дар он ҳар калид натиҷаи фармони функсияе мебошад, ки дода шудааст, ва арзиш маҷмӯи элементҳое мебошад, ки ба ин калид мувофиқат мекунанд.
sobes.tech AI
Ҷавоб аз AI
Метод groupBy группирует элементы массива по ключу, который вычисляется переданной функцией. Он возвращает объект, где ключи — это результаты функции, а значения — массивы элементов, соответствующих этим ключам.
Пример реализации Array.prototype.groupBy:
if (!Array.prototype.groupBy) {
Array.prototype.groupBy = function(callback) {
return this.reduce((acc, item, index, array) => {
const key = callback(item, index, array);
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(item);
return acc;
}, {});
};
}
// Пример использования:
const data = [
{ category: 'fruit', name: 'apple' },
{ category: 'vegetable', name: 'carrot' },
{ category: 'fruit', name: 'banana' }
];
const grouped = data.groupBy(item => item.category);
console.log(grouped);
/*
{
fruit: [ { category: 'fruit', name: 'apple' }, { category: 'fruit', name: 'banana' } ],
vegetable: [ { category: 'vegetable', name: 'carrot' } ]
}
*/
Такой метод удобен для структурирования данных по определённым признакам.