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] }