jslet myList = [1, 2, 3, 4, 5];
function pureAppend(value) {
return [...myList, value];
}
console.log(pureAppend(10)); // [1, 2, 3, 4, 5, 10]
console.log(myList); // [1, 2, 3, 4, 5] : inchangé
let dontMutateInjection = [6, 7, 8];
function pureInject(index, newValue) {
return [...dontMutateInjection.slice(0, index), newValue, ...dontMutateInjection.slice(index)];
}
console.log(pureInject(1, 10)); // [6, 10, 7, 8]
const notes = [
{ id: 10, module: 'Algorithme', note: 15 }, { id: 10, module: 'POO', note: 17 },
{ id: 11, module: 'Algorithme', note: 16 }, { id: 11, module: 'POO', note: 14 },
];
function pureUpdateNote(id, module, note) {
return [...notes.filter(n => !(n.id === id && n.module === module)), { id: id, module: module, note: note }];
}
console.log(pureUpdateNote(10, 'POO', 18)); // la note POO de l'étudiant 10 devient 18 (à la fin du tableau)