Ini adalah topik yang pendek dan agak luar biasa untuk ditulis, tetapi saya tidak banyak menemuinya di web semasa bekerja, jadi inilah sumbangan saya. Saya ingin mendengar pendapat orang ramai tentang kaedah ini kerana saya kerap menggunakannya. Saya tidak suka menulis berbilang kes dalam pernyataan suis, jadi saya dapati menggunakan objek sebagai alternatif yang lebih bersih. Ia mungkin tidak lebih pantas, tetapi kod itu kelihatan lebih bersih bagi saya.
Saya mahu mengendalikan pesanan dengan status pembayaran yang berbeza dan menggunakan rawatan yang berbeza bergantung pada sama ada ia dibayar atau tidak.
Mari kita mulakan dengan ini:
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) }
Kami ingin memohon rawatan khusus berdasarkan pesanan.paymentStatus. Penyelesaian mudah ialah menggunakan pernyataan suis seperti ini:
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) }
Ini adalah kes yang mudah kerana kami mempunyai dua pilihan dan lalai, tetapi bayangkan ia dengan berbilang kaedah pembayaran. Kami akan menyimpannya seperti ini untuk tujuan kejelasan:
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") }
Menggunakan objek dan bukannya pernyataan suis boleh menjadikan kod anda lebih mudah dibaca dan diselenggara, terutamanya apabila menangani berbilang kes. Ini soal keutamaan peribadi, tetapi ia patut dipertimbangkan sebagai pendekatan alternatif.
Sila beritahu saya jika terdapat sebarang perubahan atau penambahan khusus lain yang ingin anda buat!
Atas ialah kandungan terperinci Meningkatkan Kod JavaScript: Menggunakan Objek Daripada Tukar Pernyataan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!