2012-07-09 18 views
11

Javascriptの辞書について質問があります。私はキーと値のペアが動的に次のように追加された辞書を持っています:JavaScriptの辞書でキーを使って値を見つける方法

var Dict = [] 
var addpair = function (mykey , myvalue) [ 
    Dict.push({ 
    key: mykey, 
    value: myvalue 
    }); 
} 

私はこの関数を呼び出して、別のキーと値を渡します。しかし、今私はキーに基づいて私の価値を取り戻したいが、私はそうすることができない。誰か私に正しい方法を教えてもらえますか?

var givevalue = function (my_key) { 
    return Dict["'" +my_key +"'"]   // not working 
    return Dict["'" +my_key +"'"].value // not working 
} 

私のキーが可変であるように、私はDict.my_key

感謝を使用することはできません。

答えて

17

JavaScriptの配列は文字列をキーとして使用しません。値はそこにあることがわかりますが、キーは整数です。

あなたがオブジェクトにDictを作る場合、これは動作します:

var Dict = {}; 
var addpair = function (my_key, my_value) { 
    Dict[my_key] = my_value; 
} 
var givevalue = function (my_key) { 
    return Dict[my_key]; 
} 

my_key変数はすでに文字列であるので、あなたはより多くの引用符は必要ありません。

+0

こんにちは、値を使ってキーを見つけて逆にすることはできません。 –

+0

あまり簡単ではありません。ループを実行し、オブジェクトのすべての値を取得してから、そのキーを返します。問題は2つの値が同じである可能性があるため、重複を避けるためにaddpair()にコードを入れる必要があるということです。 –

+0

配列はJavascript * do *で文字列をキーとして使用し、配列インデックスとして使用しようとしているものは背後の文字列に強制的に変換されます。これを確認するには、 'toString'メソッドでオブジェクトを作成し、それを配列インデックスとして使用します。 'toString'メソッドが返すものは何でも使用します。 –

関連する問題