Skip to content

Instantly share code, notes, and snippets.

@o0Ignition0o
Created March 4, 2020 21:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save o0Ignition0o/0e0ea1cec8d0ac806c6ee20ffb65dd98 to your computer and use it in GitHub Desktop.
Save o0Ignition0o/0e0ea1cec8d0ac806c6ee20ffb65dd98 to your computer and use it in GitHub Desktop.
// 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