1
JavaScriptの辞書機能を使うには?JavaScriptでオブジェクトを使用してキーで値を取得して取得する方法は?
ルックこのquestionで指定された方法が取り組んでいるが、私はこのようなキーとして機能インスタンスを設定しています:
Scale = function()
{
this.Collections = {};
this.IndexTracker = {};
this.UpdateIndex = function()
{
var index = 0;
for (var i = 0; i < this.Collections.length; i++)
{
this.SetIndex(this.Collections[i], index++);
}
}
this.SetIndex = function (obj, value)
{
this.IndexTracker[obj] = value;
}
this.GetIndex = function (obj, value)
{
return this.IndexTracker[obj];
}
}
this.Collections
は、いくつかの関数インスタンスを保持します。
ここでの問題は、関数インスタンスがthis.Collections
の次の関数インスタンスによって上書きされることです。 Collections
の長さは常に1
です。これを解決するには?
それはスコープの問題であるかもしれない - 変数(ETC 'this.Collections'は、)のみの範囲内に存在するように、' var'キーワードを使用グローバルスコープに保存されるのではなく、関数(オブジェクト)の –
キーは文字列として扱われます。キーと異なるデータ型の場合は、文字列に変換されます。デフォルトの文字列表現は '[object Object]'ですので、キーとして使用する他のものについて考えることができます(独自のオブジェクトの直列化など)。 –
[複数のオブジェクトをキーとして使用するハッシュ/連想配列]の複製が可能です(http://stackoverflow.com/questions/6983436/hash-associative-array-using-several-objects-as-key) –