Rappels destructuration sur les objets
const obj = { name:"dupont" }
const copyAdr = obj;
const copyVal = {...obj};
copyAdr.name = "cool"
console.log(obj,copyAdr,copyVal)
Equivalent pythontutor (l'opérateur ... est remplacé par Object.Assign)
Rappels destructuration sur les tableaux
const t= [1,2];
const copyAdr = t;
const copyVal = [...t];
copyAdr[0] = "cool"
copyVal.push = "new";
console.log(t,copyAdr,copyVal)
Equivalent pythontutor
const basket = [
{ name: "orange", price: 1, category: "fruit", quantity: 2 },
{ name: "poireau", price: 1, category: "vegetable", quantity: 3, origin: "USA"},
{ name: "ananas", price: 1, category: "fruit", quantity: 1, origin: "USA" },
{ name: "Pamplemousse", price: 12, category: "fruit", quantity: 4 },
{ name: "Carotte", price: 1, category: "vegetable", quantity: 5 }
];
Filtrer les articles par catégorie : Par exemple, sélectionner tous les fruits :
⛔Code avec for-i à ne plus utiliser
let fruits = [];
for (let i = 0; i < basket.length; i++) {
if (basket[i].category === "fruit") {
fruits.push(basket[i]);
}
}
console.log(fruits);
🚫Code avec destructuration donné par GPT : à ne pas utiliser pour l'instant
let fruits = [];
for (const { category, ...rest } of basket) {
if (category === "fruit") {
fruits.push({ category, ...rest }); // Ajoute l'objet correspondant à la catégorie "fruit"
}
}
✅ Il est préférable d'écrire le code suivant sans destructuration
let fruits = [];
for (const item of basket) {
if (item.category === "fruit") {
fruits.push({ ...item }); // Ajoute l'objet correspondant à la catégorie "fruit"
}
}
🆘 faire un dessin du résultat !
Code équivalent dans pythontutor : code
Comparez le code précédent qui copie les fruits dans une nouvelle structure avec une recopie de l'adresse !
let fruits = [];
for (const item of basket) {
if (item.category === "fruit") {
fruits.push(item); // Ajoute l'objet correspondant à la catégorie "fruit"
}
}
👍code
Résumé |
|---|
for (const item of basket) { if (item.category === "fruit") { fruits.push( item ); } } | for (const item of basket) { if (item.category === "fruit") { fruits.push( {... item} ); } } |

| 
|