source

연결 배열 키 목록을 가져오는 중

gigabyte 2022. 10. 20. 21:53
반응형

연결 배열 키 목록을 가져오는 중

JavaScript에 관련 배열이 있습니다.

var dictionary = {
    "cats": [1,2,3,4,5],
    "dogs": [6,7,8,9,10]
};

이 사전의 열쇠는 어떻게 구하나요?즉, 나는

var keys = ["cats", "dogs"];

용어만 정확하게 말하면 - JavaScript에는 '어소시에이티브 어레이'라는 것이 없습니다.이것은 엄밀히 말하면object우리가 원하는 객체 키입니다.

이것을 시험해 보세요.

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
}

그건..명기되어 있습니다.

다음을 사용할 수 있습니다.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, Internet Explorer 9에서 지원됩니다.Object.keys()에는 다음과 같이 추가할 수 있는 코드 스니펫이 포함되어 있습니다.Object.keys()는 브라우저에서는 지원되지 않습니다.

잠깐 메모만 할게요.사용에 주의하다for..in라이브러리(jQuery, 프로토타입 등)를 사용하는 경우 대부분의 라이브러리가 작성된 객체(사전 포함)에 메서드를 추가합니다.

즉, 루프를 실행하면 메서드 이름이 키로 표시됩니다.라이브러리를 사용하고 있는 경우는, 메뉴얼을 참조해, 오브젝트의 반복에 적절한 방법을 찾을 수 있는, 열거 가능한 섹션을 참조해 주세요.

간단한 jQuery 방법:

사용하고 있는 것은 다음과 같습니다.

DictionaryObj는 참조할 JavaScript 사전 개체입니다.그리고 가치, 물론 사전에 있는 이름들이 핵심입니다.

$.each(DictionaryObj, function (key, value) {
    $("#storeDuplicationList")
        .append($("<li></li>")
        .attr("value", key)
        .text(value));
});

현재 Rob de la Cruz의 답변을 사용하고 있습니다.

Object.keys(obj)

그리고 초기에 로드된 파일에는 인터넷상의 다른 곳에서 빌려온 코드 행이 몇 개 있습니다.이러한 행은 오브젝트가 없는 오래된 버전의 스크립트 인터프리터의 경우를 망라합니다.내장 키

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

반응형