Back to questions
Middle+
2
Реализовать метод Array.prototype.groupBy, который возвращает структурированную версию массива объектов, где каждый ключ является результатом вызова переданной функции, а значение — массивом элементов, соответствующих этому ключу.
Companies where asked
Яндекс
Answer from AI
sobes.tech 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' } ]
}
*/
Такой метод удобен для структурирования данных по определённым признакам.