let tab = [1, 2, 3, -1, 6, 6, 1, 2, 2, 1];
[ 1, 1, 1, -1, 6, 6, 2, 2, 2, 3 ]
let tab = [1, 2, 3, -1, 6, 6, 1, 2, 2, 1];
[ 1, 1, 1, -1, 6, 6, 2, 2, 2, 3 ]
const courses = [
{ name: "HTML", levels: ["L1", "L2"] },
{ name: "CSS", levels: ["L1", "L2"] },
{ name: "JS", levels: ["L2", "L3", "M1"] }
]
const levels = new Set(courses.reduce((acc, { levels: levels }) => ([...acc, ...levels]), []));
const programme = courses.reduce((a, { levels: levels, name }) => {
for (let level of levels) {
if (!a[level]) a[level] = [];
a[level].push(name);
}
return a;
}, {});
const menu = Object.entries(programme).map(([level, courses]) => {
return {
title: level,
subnav: courses.map((course) => {
return { title: course }
})
}
})
console.dir(JSON.stringify(menu));
This doit être vu comme un paramétre.
This permet d'économiser du code en mémoire.
Voici à quoi ressemble l'aggregation dans une base de données !
const products = [
const groupBy = (arr, key) =>