ホームページ > ウェブフロントエンド > jsチュートリアル > 組み込みサポートなしで JavaScript に Set 機能を実装するにはどうすればよいでしょうか?

組み込みサポートなしで JavaScript に Set 機能を実装するにはどうすればよいでしょうか?

Mary-Kate Olsen
リリース: 2024-10-28 14:22:02
オリジナル
236 人が閲覧しました

How Can You Implement Set Functionality in JavaScript Without Built-in Support?

JavaScript で Set を模倣する

JavaScript には組み込みの Set オブジェクトがありませんが、開発者は多くの場合、高速検索で順序付けされていない一意の値を保存する機能を必要とします。

ブール値を持つオブジェクトの使用:
質問で示唆されているように、オブジェクトはセットを模倣するために使用できます。キーは値を表し、値はすべて true (または null 以外の値) に設定されます。このアプローチでは高速な検索と削除が可能ですが、キーの数が増えると追加が遅くなります。

ES6 Set Object:
環境が ES6 をサポートしている場合 (最新のブラウザーやトランスパイルされたブラウザーなど)コード)、組み込みの Set オブジェクトを使用できます。すべてのセット操作に対して優れたパフォーマンスを発揮し、さらに要素の反復処理と文字列強制の回避が容易になります。

ポリフィルと事前構築オブジェクト:
をサポートしていない環境の場合ES6 では、「ES6-Set」などのポリフィル、または ES6 Set オブジェクトと同様の機能を提供する「miniSet」や「set.js」などの事前構築済みオブジェクトを使用できます。これらには、古いブラウザとの互換性やコード フットプリントの縮小などの利点があります。

実装の詳細:

オブジェクトの使用:

<code class="javascript">const setObj = {};
setObj["item1"] = true;
if ("item1" in setObj) { // fast lookup
  console.log("Item found");
}
delete setObj["item1"]; // fast deletion</code>
ログイン後にコピー

ES6 Set オブジェクトの使用:

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

ポリフィルの使用:

<code class="javascript">import Set from "es6-set";
const set = new Set(["item1", "item2"]);
console.log(...set.keys()); // easy iteration</code>
ログイン後にコピー

Pre-構築されたオブジェクト:

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

最適な選択は、特定の要件と環境で利用可能なサポートによって異なります。複雑なアプリケーションやパフォーマンスが重要なアプリケーションには、ES6 Set オブジェクトが最適です。それ以外の場合は、オブジェクト、ポリフィル、または事前に構築されたセット オブジェクトを使用すると、合理的な解決策が得られます。

以上が組み込みサポートなしで JavaScript に Set 機能を実装するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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