연관 배열 키 목록 가져 오기
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
.
for (var key in dictionary) {
// do something with key
}
그것은이다 for..in을 문 .
라이브러리 (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 솔루션을 함수에 넣습니다.
참고 URL : https://stackoverflow.com/questions/558981/getting-a-list-of-associative-array-keys
'Programing' 카테고리의 다른 글
BASIC 인증을 사용하여 웹 사이트에서 사용자를 로그 아웃하는 방법은 무엇입니까? (0) | 2020.04.02 |
---|---|
jQuery 또는 순수 JavaScript에 파일이 있는지 어떻게 확인합니까? (0) | 2020.04.02 |
텍스트 파일에서 줄 끝을 찾는 방법은 무엇입니까? (0) | 2020.04.02 |
Docker의 이미지를 어떻게 삭제합니까? (0) | 2020.04.02 |
쉘 스크립트에 전달 된 마지막 인수 얻기 (0) | 2020.04.02 |