Last active
January 13, 2023 09:29
-
-
Save rcarlier/876b6912220c63191ac7ff7d55abec08 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
/* | |
O Captain! My Captain! | |
J'ai demandé à Chat GPT | |
Comment en JavaScript affiche tous les éléments d'un tableau nommé | |
"captains" de plusieurs façons différentes ? | |
De temps en temps, j'ai demandé | |
Donne m'en d'autre | |
Et un peu forcé la main pour la récursion et la fonction generator | |
Dans le code ci dessous, je n'ai modifié que les noms des variables | |
ou fonctions pour éviter les messages du genre | |
Identifier 'i' has already been declared | |
*/ | |
const captains = ["America", "Haddock"]; | |
let i; | |
console.log(`\n\n1 - Utilisation de la boucle "for":`); | |
for (i = 0; i < captains.length; i++) { | |
console.log(captains[i]); | |
} | |
console.log(`\n\n2 - Utilisation de la boucle "for...of":`); | |
for (const captain of captains) { | |
console.log(captain); | |
} | |
console.log(`\n\n3 - Utilisation de la méthode "forEach":`); | |
captains.forEach(function (captain) { | |
console.log(captain); | |
}); | |
console.log(`\n\n4 - Utilisation de la méthode "forEach" avec une fonction fléchée:`); | |
captains.forEach((captain) => console.log(captain)); | |
console.log(`\n\n5 - Utilisation de la méthode "map":`); | |
captains.map(function (captain) { | |
console.log(captain); | |
}); | |
console.log(`\n\n6 - Utilisation de la méthode "map" avec une fonction fléchée:`); | |
captains.map((captain) => console.log(captain)); | |
console.log(`\n\n7 - Utilisation de la méthode "reduce":`); | |
captains.reduce(function (acc, captain) { | |
console.log(captain); | |
return acc; | |
}, []); | |
console.log(`\n\n8 - Utilisation de la boucle "while":`); | |
i = 0; | |
while (i < captains.length) { | |
console.log(captains[i]); | |
i++; | |
} | |
console.log(`\n\n9 - Utilisation de la boucle "do...while":`); | |
i = 0; | |
do { | |
console.log(captains[i]); | |
i++; | |
} while (i < captains.length); | |
console.log(`\n\n10 - Utilisation de la méthode "slice":`); | |
i = 0; | |
let captain; | |
while ((captain = captains.slice(i, ++i)[0])) { | |
console.log(captain); | |
} | |
console.log(`\n\n11 - Utilisation de la méthode "for...in": `); | |
for (i in captains) { | |
console.log(captains[i]); | |
} | |
console.log(`\n\n12 - Utilisation de la méthode "entries()" et la boucle "for...of": `); | |
for (const [index, captain] of captains.entries()) { | |
console.log(`\n\nCaptain ${index + 1}: ${captain}`); | |
} | |
console.log(`\n\n13 - Utilisation de la méthode "keys()" et la boucle "for...of": `); | |
for (const index of captains.keys()) { | |
console.log(captains[index]); | |
} | |
console.log(`\n\n14 - Utilisation de la méthode "values()" et la boucle "for...of": `); | |
for (const captain of captains.values()) { | |
console.log(captain); | |
} | |
console.log(`\n\n15 - Utilisation de la méthode "some()": `); | |
captains.some(function (captain) { | |
console.log(captain); | |
}); | |
console.log(`\n\n16 - Utilisation de la méthode "some()" avec une fonction fléchée: `); | |
captains.some((captain) => console.log(captain)); | |
console.log(`\n\n17 - Utilisation de la méthode "every()": `); | |
captains.every(function (captain) { | |
console.log(captain); | |
}); // n'en donne qu'un seul | |
console.log(`\n\n18 - Utilisation de la méthode "every()" avec une fonction fléchée: `); | |
captains.every((captain) => console.log(captain)); // n'en donne qu'un seul | |
console.log(`\n\n19 - Utilisation de la méthode "filter()": `); | |
captains.filter(function (captain) { | |
console.log(captain); | |
}); | |
console.log(`\n\n20 - Utilisation de la méthode "filter()" avec une fonction fléchée: `); | |
captains.filter((captain) => console.log(captain)); | |
console.log(`\n\n21 - Utilisation de la fonction "forEach" avec un paramètre "index": `); | |
captains.forEach(function (captain, index) { | |
console.log(`Captain ${index + 1}: ${captain}`); | |
}); | |
console.log(`\n\n22 - Utilisation de la méthode "join()": `); | |
console.log(captains.join(", ")); | |
console.log(`\n\n23 - Utilisation de la méthode "toString()": `); | |
console.log(captains.toString()); | |
console.log(`\n\n24 - Utilisation de l'opérateur spread: `); | |
console.log(...captains); | |
console.log(`\n\n25 - Utilisation de l'opérateur spread avec un tableau vide: `); | |
console.log([...captains]); | |
console.log(`\n\n26 - Utilisation de la fonction "Object.values()": `); | |
console.log(Object.values(captains)); | |
console.log(`\n\n27 - Utilisation de la fonction "Object.entries()" et la boucle "for...of": `); | |
for (const [index, captain] of Object.entries(captains)) { | |
console.log(`Captain ${index + 1}: ${captain}`); | |
} | |
console.log(`\n\n28 - Utilisation de la fonction "Object.keys()" et la boucle "for...of": `); | |
for (const index of Object.keys(captains)) { | |
console.log(captains[index]); | |
} | |
console.log(`\n\n29 - Utilisation de la fonction "Object.getOwnPropertyNames()": `); | |
console.log( | |
Object.getOwnPropertyNames(captains).map(function (index) { | |
return captains[index]; | |
}) | |
); | |
console.log(`\n\n30 - Et en utilisant la récursion ?`); | |
function displayArrayRecursion(array, index = 0) { | |
if (index >= array.length) { | |
return; | |
} | |
console.log(array[index]); | |
displayArrayRecursion(array, index + 1); | |
} | |
displayArrayRecursion(captains); | |
console.log(`\n\n31 - Et en utilisant une fonction génératrice ?`); | |
function* displayArrayGenerator(array) { | |
for (i = 0; i < array.length; i++) { | |
yield array[i]; | |
} | |
} | |
for (const element of displayArrayGenerator(captains)) { | |
console.log(element); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment