Sobes.tech
Middle+

Valósítsa meg az Array.prototype.groupBy metódust, amely egy strukturált változatát adja vissza a tömb objektumoknak, ahol minden kulcs a megadott függvény hívásának eredménye, és az érték egy olyan tömb, amely megfelel ennek a kulcsnak.

sobes.tech MI

Válasz az MI-től

Метод 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' } ]
}
*/

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