2016-10-21 6 views
-1

辞書オブジェクトのようなものを作成したい場合は、名前をキーに指定して、その値を出力する必要があります。javascriptで連想配列を使用する

例:

dict["jerry"] should output 20 as value. 

それとも

var name = "jerry"; 
dict[name] should output 20 as value 

私のコード。

var totalAdditions = []; 
totalAdditions.push({name:statsObj.author.login, value: additions}); 
//statsObj.author.login contains "jerry" 

console.log(obj.login); //also contains value "jerry" 
console.log(totalAdditions[obj.login]); //returns undefined?? 
+0

'totalAdditions'が配列0,1,2 'としてキーを備えています、 .... '、 'index'を使用して配列から特定のオブジェクトを選択し、' [](角カッコ表記) 'を使用してプロパティにアクセスしてください。 – Rayon

+1

" My code "の次の部分は完全に不明です。 'statsObj'とは何ですか? 'obj'とは何ですか?どのようなオブジェクトの配列についてのコードは、以前のコードの '' jerry''を20にマッピングするのと関係がありますか? –

+0

これらのアプリケーションケースには新しい[Mapオブジェクト](https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Global_Objects/Map)の使用を検討することもできます – Redu

答えて

5

JavaScriptには「結合配列」がありません。それはあなたが望むことをすることができるオブジェクトを持ち、Map(ES2015現在)、あなたが望むことをすることもできます。

オブジェクト:

var dict = Object.create(null); // Not {} so it doesn't inherit props like 
 
           // "toString", "valueOf", etc. 
 
var name = "jerry"; 
 
dict["jerry"] = 20; 
 
console.log(dict[name]); // 20

ES2015 + Map

let dict = new Map(); 
 
var name = "jerry"; 
 
dict.set("jerry", 20); 
 
console.log(dict.get(name)); // 20