ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript コードの強化: switch ステートメントの代わりにオブジェクトを使用する

JavaScript コードの強化: switch ステートメントの代わりにオブジェクトを使用する

Mary-Kate Olsen
リリース: 2025-01-14 16:29:44
オリジナル
639 人が閲覧しました

Enhancing JavaScript Code: Using Objects Instead of Switch Statements

導入

これは短くて少し珍しいトピックですが、仕事中にウェブ上であまり目にしたことがなかったので、ここに私の投稿を記載します。私はこの方法を定期的に使用しているので、この方法について人々の意見を聞きたいです。私は switch ステートメント内に複数のケースを記述するのが好きではないので、オブジェクトを使用する方がよりクリーンな代替手段であることがわかりました。高速ではないかもしれませんが、コードがよりきれいに見えます。

デモンストレーション

支払いステータスが異なる注文を処理し、支払いの有無に応じて異なる処理を適用したいと考えています。

まずはこれから始めましょう:

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)
}
ログイン後にコピー

order.paymentStatus に基づいて特定の処理を適用したいと考えています。簡単な解決策は、次のような switch ステートメントを使用することです:

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)
}
ログイン後にコピー

これは 2 つのオプションとデフォルトがあるため単純なケースですが、複数の支払い方法がある場合を想像してください。わかりやすくするために、このようにしておきます:

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")
}
ログイン後にコピー

結論

switch ステートメントの代わりにオブジェクトを使用すると、特に複数のケースを扱う場合に、コードがより読みやすく保守しやすくなります。これは個人的な好みの問題ですが、別のアプローチとして検討する価値があります。

他に具体的な変更や追加が必要な場合は、お気軽にお知らせください。

以上がJavaScript コードの強化: switch ステートメントの代わりにオブジェクトを使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート