Maison > interface Web > js tutoriel > Amélioration du code JavaScript : utilisation d'objets au lieu d'instructions Switch

Amélioration du code JavaScript : utilisation d'objets au lieu d'instructions Switch

Mary-Kate Olsen
Libérer: 2025-01-14 16:29:44
original
639 Les gens l'ont consulté

Enhancing JavaScript Code: Using Objects Instead of Switch Statements

Introduction

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.

Démonstration

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)
}
Copier après la connexion

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)
}
Copier après la connexion

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")
}
Copier après la connexion

Conclusion

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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal