C'est un sujet court et quelque peu inhabituel sur lequel écrire, mais je ne l'ai pas beaucoup rencontré sur le Web dans le cadre de mon travail, voici donc ma contribution. J’aimerais avoir l’avis des gens sur cette méthode puisque je l’utilise régulièrement. Je n'aime pas écrire plusieurs cas dans une instruction switch, j'ai donc trouvé que l'utilisation d'un objet était une alternative plus propre. Ce n'est peut-être pas plus rapide, mais le code me semble plus propre.
Je souhaite traiter les commandes avec différents statuts de paiement et appliquer différents traitements selon qu'elles sont payées ou non.
Commençons par ceci :
const orders = [{ "id": 1, "product": "shoes", "paymentStatus": "Paid" },{ "id": 2, "product": "pants", "paymentStatus": "Pending" },{ "id": 3, "product": "tie", "paymentStatus": "UnPaid" }]; const handlePaymentStatus =(order) =>{ return order.paymentStatus } for (const order of orders) { handlePaymentStatus(order) }
Nous souhaitons appliquer un traitement spécifique basé sur le order.paymentStatus. Une solution simple serait d'utiliser une instruction switch comme celle-ci :
let orders = [{ "id": 1, "product": "shoes", "paymentStatus": "Paid" },{ "id": 2, "product": "pants", "paymentStatus": "Pending" },{ "id": 3, "product": "tie", "paymentStatus": "Unpaid" }]; const handlePaymentStatus =(order) =>{ switch (order.paymentStatus) { case 'Paid': console.log("it's all good"); break; case 'Unpaid': console.log("need to be paid"); break; default: console.log(`We'll wait`); } } for (const order of orders) { handlePaymentStatus(order) }
C'est un cas simple puisque nous avons deux options et une par défaut, mais imaginez-le avec plusieurs modes de paiement. Nous le garderons ainsi par souci de clarté :
let orders = [{ "id": 1, "product": "shoes", "paymentStatus": "Paid" },{ "id": 3, "product": "tie", "paymentStatus": "Unpaid" },{ "id": 2, "product": "pants", "paymentStatus": "Pending" },]; const paymentStatusHandlers = { 'Paid': () => console.log("it's all good"), 'Unpaid': () => console.log("needs to be paid"), } for (const order of orders) { paymentStatusHandlers[order.paymentStatus] ? paymentStatusHandlers[order.paymentStatus]() : console.log("We'll wait") }
L'utilisation d'un objet au lieu d'une instruction switch peut rendre votre code plus lisible et plus maintenable, en particulier lorsqu'il s'agit de plusieurs cas. C'est une question de préférence personnelle, mais cela vaut la peine d'être considéré comme une approche alternative.
N'hésitez pas à me faire savoir si vous souhaitez apporter d'autres modifications ou ajouts spécifiques !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!