La valeur associée à chaque clé sera un tableau composé de tous les éléments qui ont abouti à cette valeur de retour lorsqu'il est passé dans le rappel.

function groupBy(array, callback) {

  return array.reduce((acc,cur) => {
    let key = callback(cur)
    acc[key] = acc[key] || [];
    acc[key].push(cur)
    return acc;
  },{})
  
}

const decimals = [1.3, 2.1, 2.4];

const floored = function(num) {
  return Math.floor(num);
};

console.log(groupBy(decimals, floored));
Wide-eyed Whale