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

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