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' } ]
}
*/
Такой метод удобен для структурирования данных по определённым признакам.