Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Menambah Ahli Objek Secara Bersyarat dalam JavaScript Tanpa Sifat Tidak Ditakrifkan?

Bagaimanakah Saya Boleh Menambah Ahli Objek Secara Bersyarat dalam JavaScript Tanpa Sifat Tidak Ditakrifkan?

Linda Hamilton
Lepaskan: 2024-12-23 10:27:45
asal
794 orang telah melayarinya

How Can I Add Object Members Conditionally in JavaScript Without Undefined Properties?

Menambah Ahli Objek Secara Bersyarat dalam JavaScript

Dalam JavaScript, adalah perkara biasa untuk menambah ahli pada objek secara dinamik. Walau bagaimanapun, apabila penambahan ini perlu bersyarat, pendekatan yang paling mudah selalunya membawa kepada ahli yang tidak ditentukan.

Dalam percubaan untuk mencipta kod idiomatik:

a = {
    b: (someCondition? 5 : undefined)
};
Salin selepas log masuk

ahli b ditambahkan pada objek tanpa mengira hasil someCondition, menyebabkan nilainya tidak ditentukan jika syarat itu palsu.

Untuk menyelesaikannya, lebih banyak penyelesaian ringkas boleh digunakan menggunakan operator hamparan (...) dan penilaian logik DAN litar pintas (&&):

const a = {
   ...(someCondition && {b: 5})
}
Salin selepas log masuk

Kod ini menghapuskan keperluan untuk operator bersyarat. Operator hamparan mengembangkan pendakap kerinting ke dalam objek, menambah ahli b jika someCondition adalah benar. Penilaian logik DAN litar pintas memastikan bahawa pendakap kerinting hanya dinilai jika beberapa Syarat adalah benar, menghalang penambahan ahli yang tidak ditentukan.

Pendekatan ini boleh diperluaskan dengan mudah untuk mengendalikan berbilang ahli bersyarat:

const a = {
   ...(conditionB && {b: 5}),
   ...(conditionC && {c: 5}),
   ...(conditionD && {d: 5}),
   ...(conditionE && {e: 5}),
   ...(conditionF && {f: 5}),
   ...(conditionG && {g: 5}),
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menambah Ahli Objek Secara Bersyarat dalam JavaScript Tanpa Sifat Tidak Ditakrifkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan