Sobes.tech
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' } ]
}
*/

Такой метод удобен для структурирования данных по определённым признакам.