JavaScript tidak menyediakan objek Set terbina dalam, tetapi pembangun selalunya memerlukan keupayaan untuk menyimpan nilai yang unik dan tidak tertib dengan carian pantas, penambahan dan keupayaan pemadaman.
Menggunakan Objek dengan Nilai Boolean:
Seperti yang dicadangkan dalam soalan, objek boleh digunakan untuk meniru set. Kekunci mewakili nilai dan nilai semuanya ditetapkan kepada benar (atau sebarang nilai bukan nol). Pendekatan ini menyediakan carian dan pemadaman pantas, tetapi penambahan menjadi lebih perlahan apabila bilangan kekunci bertambah.
Objek Set ES6:
Jika persekitaran anda menyokong ES6 (cth., penyemak imbas moden atau transpiled kod), anda boleh menggunakan objek Set terbina dalam. Ia mempunyai prestasi yang sangat baik untuk semua operasi yang ditetapkan dan tambahan pula membolehkan lelaran mudah ke atas elemen dan mengelakkan paksaan rentetan.
Polyfills dan Objek Pra-Bina:
Untuk persekitaran yang tidak menyokong ES6, anda boleh menggunakan polyfills seperti "ES6-Set" atau objek pra-bina seperti "miniSet" atau "set.js" yang menyediakan fungsi yang serupa dengan objek Set ES6. Ini menawarkan kelebihan seperti keserasian dengan penyemak imbas lama atau jejak kod yang lebih kecil.
Butiran Pelaksanaan:
Menggunakan Objek:
<code class="javascript">const setObj = {}; setObj["item1"] = true; if ("item1" in setObj) { // fast lookup console.log("Item found"); } delete setObj["item1"]; // fast deletion</code>
Menggunakan Objek Set ES6:
<code class="javascript">const set = new Set(); set.add("item1"); if (set.has("item1")) { // fast lookup console.log("Item found"); } set.delete("item1"); // fast deletion</code>
Menggunakan Polyfill:
<code class="javascript">import Set from "es6-set"; const set = new Set(["item1", "item2"]); console.log(...set.keys()); // easy iteration</code>
Menggunakan Pra- Objek Terbina:
<code class="javascript">const miniSet = new MiniSet("item1", "item2"); if (miniSet.has("item1")) { // fast lookup console.log("Item found"); } miniSet.remove("item1"); // fast deletion</code>
Pilihan terbaik bergantung pada keperluan khusus dan sokongan yang tersedia dalam persekitaran anda. Untuk aplikasi yang kompleks atau kritikal prestasi, objek Set ES6 adalah ideal. Jika tidak, menggunakan objek, polyfill atau objek set pra-bina boleh memberikan penyelesaian yang munasabah.
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Melaksanakan Fungsi Set dalam JavaScript Tanpa Sokongan Terbina dalam?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!