Sobes.tech
Middle

// Պետք է իրականացնել groupBy մեթոդը, որը ընդլայնում է զանգվածների ստանդարտ մեթոդները: // Մեթոդը պետք է վերադարձնի զանգվածի խմբավորված տարբերակը՝ օբյեկտ, // որի յուրաքանչյուր բանալի հանդիսանում է փոխանցված fn(arr[i]) ֆունկցիայի կատարման արդյունքը, // իսկ յուրաքանչյուր արժեք՝ զանգված, որը պարունակում է բոլոր այն տարրերը, որոնք ունեն այդ բանալին։

sobes.tech AI

Պատասխան AI-ից

Можно расширить прототип массива, добавив метод groupBy, который принимает функцию fn и возвращает объект, где ключи — результат вызова fn для каждого элемента, а значения — массивы элементов с этим ключом.

Array.prototype.groupBy = function(fn) {
  return this.reduce((acc, item) => {
    const key = fn(item);
    if (!acc[key]) {
      acc[key] = [];
    }
    acc[key].push(item);
    return acc;
  }, {});
};

// Пример использования:
const arr = [6.1, 4.2, 6.3];
const grouped = arr.groupBy(Math.floor);
console.log(grouped); // { '4': [4.2], '6': [6.1, 6.3] }