Javascript에 연관 배열이 있습니다.
var dictionary = {
"cats": [1,2,3,4,5],
"dogs": [6,7,8,9,10]
};
이 사전의 키를 어떻게 얻습니까? 즉 나는 원한다
var keys = ["cats", "dogs"];
7 년 후 편집 : 용어를 올바르게 얻으려면 Javascript에는 ‘associative array’와 같은 것이 없습니다. 기술적으로는 이것이 object
우리가 원하는 객체 키입니다.
답변
당신이 사용할 수있는: Object.keys(obj)
예:
var dictionary = {
"cats": [1, 2, 37, 38, 40, 32, 33, 35, 39, 36],
"dogs": [4, 5, 6, 3, 2]
};
// Get the keys
var keys = Object.keys(dictionary);
console.log(keys);
브라우저 지원에 대해서는 아래 참조를 참조하십시오. Firefox 4.20, Chrome 5, IE9에서 지원됩니다. 아래 링크에는 Object.keys()
브라우저에서 지원되지 않는 경우 추가 할 수있는 코드 스 니펫이 포함되어 있습니다 .
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys
답변
이 시도:
var keys = [];
for (var key in dictionary) {
if (dictionary.hasOwnProperty(key)) {
keys.push(key);
}
}
hasOwnProperty
의 프로토 타입 객체에 키를 삽입 할 수 있기 때문에 필요합니다 dictionary
. 그러나 일반적으로 이러한 키를 목록에 포함시키지 않으려 고합니다.
예를 들어, 이렇게하면 :
Object.prototype.c = 3;
var dictionary = {a: 1, b: 2};
다음 수행 for...in
을 통해 루프를 dictionary
당신은 얻을 것이다, a
그리고 b
,하지만 당신은 얻을 것이다 c
.
답변
답변
라이브러리 (jQuery, 프로토 타입 등)를 사용하는 경우 for..in 사용에주의하십시오. 대부분은 생성 된 객체 (사전 포함)에 메소드를 추가하기 때문입니다.
이것은 당신이 그것들을 반복 할 때 메소드 이름이 키로 나타남을 의미합니다. 라이브러리를 사용하는 경우 설명서를보고 열거 가능한 섹션을 찾으십시오. 여기에서 객체를 반복하는 올바른 방법을 찾을 수 있습니다.
답변
간단한 JQUERY 방식.
이것이 내가 사용
하려는 자바 스크립트 사전 객체 인 DictionaryObj를 사용 하는 것입니다. 가치, 핵심은 물론 사전에 그것들의 이름입니다.
$.each(DictionaryObj, function (key, value) {
$("#storeDuplicationList")
.append($("<li></li>")
.attr("value", key)
.text(value));
});
답변
저는 현재 Rob de la Cruz의 답변을 사용하고 있습니다
Object.keys(obj)
그리고 일찍로드 된 파일 에는 Object.keys가 내장되어 있지 않은 이전 버전의 스크립트 인터프리터의 경우를 포괄하는 인터넷의 다른 곳에서 빌린 코드 가 있습니다.
if (!Object.keys) {
Object.keys = function(object) {
var keys = [];
for (var o in object) {
if (object.hasOwnProperty(o)) {
keys.push(o);
}
}
return keys;
};
}
나는 이것이 현대의 간단한 코드와 이전 버전의 브라우저에 대한 이전 버전과 호환되는 지원 등 대규모 프로젝트에서 두 가지 모두에서 최고라고 생각합니다.
Rob de la Cruz의 Object.keys (obj)를 기본적으로 사용할 수없는 경우 JW의 솔루션을 효과적으로 함수에 넣습니다.