Sobes.tech
Middle

// Arraylarning standart metodlarini kengaytiradigan groupBy metodini amalga oshirish kerak. // Metod, massivning guruhlangan versiyasini – ob'ektni qaytarishi kerak, // bunda har bir kalit fn(arr[i]) funksiyasining bajarilish natijasi bo'lishi kerak, // va har bir qiymat, bu kalit bilan original massivning barcha elementlarini o'z ichiga olgan massiv bo'lishi kerak.

sobes.tech AI

AIdan javob

Можно расширить прототип массива, добавив метод 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] }