Middle+
Implementieren Sie die Methode Array.prototype.groupBy, die eine strukturierte Version des Arrays von Objekten zurückgibt, wobei jeder Schlüssel das Ergebnis des Aufrufs der übergebenen Funktion ist und der Wert ein Array von Elementen ist, die diesem Schlüssel entsprechen.
sobes.tech KI
Antwort von 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' } ]
}
*/
Такой метод удобен для структурирования данных по определённым признакам.