Created
March 4, 2020 21:57
-
-
Save o0Ignition0o/0e0ea1cec8d0ac806c6ee20ffb65dd98 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// destructuring | |
const monPerso = { | |
nom: "Jeremy", | |
lvl: 42, | |
classe: "mage" | |
}; | |
console.log(monPerso.classe) | |
console.log(monPerso.lvl) | |
const direBonjour = (nom, classe) => console.log(`Bonjour ${nom}, tu es un ${classe}.`) | |
const leNom = monPerso.nom; | |
const laClasse = monPerso.classe; | |
const { nom, lvl, classe } = monPerso; | |
direBonjour(nom, classe) | |
// currying | |
const plusDeux = (nombre) => nombre + 2; | |
const foisCinq = (nombre) => nombre * 5; | |
const appliqueLunPuisLautre = (f1, f2) => f2(f1); | |
const sept = plusDeux(5); | |
console.log(sept); | |
const trenteCinq = foisCinq(sept); | |
console.log(trenteCinq); | |
const trenteCinqAussi = foisCinq(plusDeux(5)); | |
console.log(trenteCinqAussi); | |
function curry(laFonctionAAppliquer) { | |
return function (argument1) { | |
return function (argument2) { | |
return laFonctionAAppliquer(argument1, argument2); | |
} | |
}; | |
} | |
function donneMoiLaSomme(a, b) { | |
return a + b; | |
} | |
console.log(donneMoiLaSomme(7, 5)) | |
const monSuperPlusDeux = curry(donneMoiLaSomme) | |
function plus(a, b) { | |
return a + b; | |
} | |
function fois(a, b) { | |
return a * b; | |
} | |
const curryPlus = curry(plus); | |
const curryFois = curry(fois); | |
console.log(curryPlus(5)(7)); | |
console.log(curryFois(5)(7)); | |
const curryPlusDeux = curryPlus(2); | |
const foisDix = curryFois(10); | |
console.log(plusDeux(5)); | |
console.log(foisDix(10)); | |
// filter | |
const monFilter = (unTableau, unFiltre) => { | |
const elementsRestants = []; | |
for (unElement of unTableau) { | |
if (unFiltre(unElement)) { | |
elementsRestants.push(unElement) | |
} | |
} | |
return elementsRestants | |
} | |
const ages = [1, 4, 6, 80, 544, 3, 26, 18, 877, 4, 99]; | |
const personnesMajeures = [80, 544, 26, 18, 877, 99]; | |
const personnesMineures = [1, 4, 6, 3, 4]; | |
function isMajeur(age) { | |
return age >= 18; | |
} | |
function isMineur(age) { | |
return age < 18; | |
} | |
function YOUSHALLNOTPASS(age) { | |
return false; | |
} | |
const lesPersonnesMineures = ages.filter(isMineur); | |
console.log(lesPersonnesMineures) | |
console.log(lesPersonnesMineures[2]) | |
console.log(personnesMineures.length === lesPersonnesMineures.length); | |
console.log(personnesMineures.toString() === lesPersonnesMineures.toString()); | |
const lesPersonnesMajeures = monFilter(ages, isMajeur); | |
console.log(lesPersonnesMajeures) | |
console.log(personnesMajeures.length === lesPersonnesMajeures.length); | |
console.log(lesPersonnesMajeures.toString() === personnesMajeures.toString()); | |
// find | |
console.log(ages.find(isMajeur)); | |
function monFind(unTableau, monFilter) { | |
return unTableau.filter(monFilter)[0] | |
} | |
console.log(ages.filter(YOUSHALLNOTPASS)); | |
console.log(ages.find(YOUSHALLNOTPASS)); | |
console.log(ages.find(isMajeur) === monFind(ages, isMajeur)); | |
console.log(ages.find(isMineur) === monFind(ages, isMineur)); | |
console.log(monFind(ages, YOUSHALLNOTPASS)); | |
// map | |
console.log(ages.map(element => element * 2)) | |
function monMap(unTableau, laTransformationAEffectuer) { | |
let leNouveauTableau = []; | |
for (element of unTableau) { | |
leNouveauTableau.push(laTransformationAEffectuer(element)); | |
} | |
return leNouveauTableau; | |
} | |
console.log(monMap(ages, curryFois(2))); | |
// reduce | |
function ageTotal(ages) { | |
let total = 0; | |
for (age of ages) { | |
total = total + age; | |
} | |
return total; | |
} | |
const cafaitvieux = ages.reduce((total, age) => { | |
return total + age; | |
}, 0); | |
console.log(cafaitvieux); | |
const haouicafaitvieux = ages.reduce((acc, current) => acc + current, 0); | |
console.log(haouicafaitvieux); | |
const unMapEnFait = (unTableau, laTransformationAEffectuer) => unTableau.reduce((acc, current) => { | |
acc.push(laTransformationAEffectuer(current)); | |
return acc; | |
}, []); | |
console.log(monMap(ages, curryFois(2))); | |
console.log(unMapEnFait(ages, curryFois(2))) | |
const unFilterEnFait = (unTableau, monFilter) => unTableau.reduce((acc, current) => { | |
if (monFilter(current)) { | |
acc.push(current); | |
} | |
return acc; | |
}, []); | |
const unFindEnFait = (unTableau, monFilter) => unTableau.reduce((acc, current) => { | |
if (acc == undefined) { | |
if (monFilter(current)) { | |
acc = current; | |
} | |
} | |
return acc; | |
}, undefined); | |
console.log(monFilter(ages, isMajeur)); | |
console.log(unFilterEnFait(ages, isMajeur)) | |
console.log(monFilter(ages, isMajeur).toString() === unFilterEnFait(ages, isMajeur).toString()) | |
console.log(monFind(ages, isMajeur)); | |
console.log(unFindEnFait(ages, isMajeur)) | |
console.log(monFind(ages, isMajeur).toString() === unFindEnFait(ages, isMajeur).toString()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment