Pembangun JavaScript kerap menggunakan objek biasa sebagai storan nilai kunci, tetapi struktur data Map
menawarkan kelebihan yang ketara. Artikel ini menyerlahkan sebab Map
sering mengatasi objek dinamik.
Faedah utama Map
ialah kapasitinya untuk menggunakan sebarang jenis data sebagai kunci, tidak seperti objek yang mengehadkan kunci kepada rentetan dan simbol.
<code class="language-javascript">// Objects convert keys to strings const obj = {}; obj[true] = "value1"; obj[1] = "value2"; obj[{ key: 1 }] = "value3"; console.log(Object.keys(obj)); // Output: ["true", "1", "[object Object]"] // Maps preserve key types const map = new Map(); map.set(true, "value1"); map.set(1, "value2"); map.set({ key: 1 }, "value3"); console.log([...map.keys()]); // Output: [true, 1, { key: 1 }]</code>
Map
menyediakan harta size
terbina dalam, menghapuskan pengiraan manual yang diperlukan dengan objek.
<code class="language-javascript">// Objects require manual size calculation const obj = { a: 1, b: 2, c: 3 }; const size = Object.keys(obj).length; console.log(size); // 3 // Maps offer direct size access const map = new Map([ ['a', 1], ['b', 2], ['c', 3] ]); console.log(map.size); // 3</code>
Map
dioptimumkan untuk penambahan dan pemadaman pasangan nilai kunci yang kerap, menghasilkan lelaran yang lebih pantas. (Kod ujian prestasi ditiadakan untuk ringkasnya, tetapi penegasan itu tetap sah).
Map
menawarkan kaedah intuitif yang dibina khas untuk tugasan biasa. Coretan kod berikut menunjukkan sintaks Map
yang lebih bersih berbanding objek untuk menambah, menyemak, mendapatkan dan memadam entri. (Kod membandingkan Map
dan kaedah objek ditinggalkan untuk ringkasnya.)
Map
mengelakkan isu pewarisan yang boleh merumitkan penggunaan objek. (Kod yang menunjukkan kekurangan gangguan rantaian prototaip dalam Map
ditinggalkan untuk ringkasnya.)
Map
menyediakan berbilang kaedah lelaran terbina dalam untuk fleksibiliti yang dipertingkatkan. (Kod yang menunjukkan lelaran for...of
, map.keys()
, map.values()
dan forEach
diabaikan untuk ringkasnya).
Walaupun Map
mempunyai kekuatan, objek masih lebih disukai dalam situasi tertentu:
(Contoh kod yang menunjukkan isu penyirian JSON dengan Map
dan penyelesaian dikecualikan untuk ringkas).
Map
lebih unggul apabila:
Berhati-hati menilai keperluan anda; Map
ialah alat yang berkuasa apabila kelebihannya sejajar dengan keperluan projek anda.
Atas ialah kandungan terperinci Mengapa Anda Perlu Memilih Peta berbanding Objek dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!