2016-10-21 3 views
-1

사전 객체와 같은 것을 만들고 싶습니다. 이름을 키로 지정하면 값을 출력해야합니다.자바 스크립트에서 연관 배열 사용

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

"내 코드"다음 부분은 완전히 명확하지 않습니다. '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

관련 문제