[解決済み] JavaScriptでハッシュコード関数のようなものはありますか?
2022-04-25 13:58:18
質問
基本的に、ユニークなオブジェクトの集合であるオブジェクトを作成しようとしています。私は、プロパティ名にオブジェクトを使用したJavaScriptオブジェクトを使用するという素晴らしいアイデアを思いつきました。そのようなものです。
set[obj] = true;
これは、ある点までは有効です。文字列や数値ではうまくいくのですが、他のオブジェクトでは、すべて同じ値に "hash"して、同じプロパティにアクセスするようです。オブジェクトに対してユニークなハッシュ値を生成できる何らかの方法はありますか?文字列と数値はどのようにそれを行うのですか?私は同じ動作をオーバーライドすることができますか?
どのように解決するのですか?
JavaScriptのオブジェクトは、キーとして文字列しか使えません(それ以外のものは文字列に変換されます)。
別の方法として、問題のオブジェクトをインデックス化した配列を保持し、そのインデックス文字列をオブジェクトへの参照として使用することができます。このようなものです。
var ObjectReference = [];
ObjectReference.push(obj);
set['ObjectReference.' + ObjectReference.indexOf(obj)] = true;
明らかに少し冗長ですが、それを処理するメソッドをいくつか書いて、getとsetを全て意のままにすることができます。
編集する
<ブロッククオートこれはJavaScriptで定義された動作で、具体的にはtoString変換が行われます。つまり、プロパティ名として使用されるオブジェクトに独自のtoString関数を定義することができます。- olliej
ハッシュ化したいオブジェクトにtoStringメソッドを定義することで、ハッシュ識別子を形成することができるのです。
関連
-
Vueでルートネスティングを実装する例
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] HTML5のlocalStorageにオブジェクトを格納する方法は?
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み] JavaScriptに「NULL合体」演算子はありますか?
-
[解決済み] JavaScriptに定数はありますか?
-
[解決済み] 2つのJavaScriptオブジェクトの等質性を判断する方法は?
-
[解決済み] Javascriptで文字列からHashを生成する
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
jsを使った簡単な照明スイッチのコード
-
vue3.0プロジェクトのアーキテクチャを構築するための便利なツール
-
Javascript Bootstrapのグリッドシステム、ナビゲーションバー、ローテーションの説明
-
vueが定義するプライベートフィルタと基本的な使い方
-
vueのプロジェクトでモックを使用する方法を知っていますか?
-
Vueの一般的な組み込みディレクティブの説明
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
[解決済み] TypeError: $.ajax(...) is not a function?
-
[解決済み] 文字列のための優れたハッシュ関数
-
[解決済み] 2つのJavaScriptオブジェクトの等質性を判断する方法は?