반응형
자바스크립트에서 해시나 사전 개체를 만드는 방법
자바스크립트로 지도 객체를 만들고 싶습니다.저는 다음과 같은 생각을 하게 되었습니다.
var a = new Array();
a["key1"] = "value1";
a["key2"] = "value2";
특정 키가 존재하는지 여부를 확인하려면 어떻게 해야 합니까?
명명된 키를 원할 경우 배열을 사용하지 말고 일반 개체를 사용합니다.
var a = {};
a["key1"] = "value1";
a["key2"] = "value2";
그러면:
if ("key1" in a) {
// something
} else {
// something else
}
이제 자바스크립트에서 내장된 맵 유형을 사용할 수 있습니다.단순히 Object를 사용하는 대신 사용할 수 있습니다.모든 주요 브라우저의 최신 버전에서 지원됩니다.
지도는 지원하지 않습니다.[subscript]
Objects에서 사용하는 표기법입니다.그 구문은 암시적으로 다음을 제시합니다.subscript
값을 기본 문자열 또는 기호로 지정합니다.맵은 모든 값을 키로 지원하므로 메소드를 사용해야 합니다..get(key)
,.set(key, value)
그리고..has(key)
.
var m = new Map();
var key1 = 'key1';
var key2 = {};
var key3 = {};
m.set(key1, 'value1');
m.set(key2, 'value2');
console.assert(m.has(key2), "m should contain key2.");
console.assert(!m.has(key3), "m should not contain key3.");
값이 속성으로 저장되기 때문에 객체는 원시 문자열과 기호만 키로 지원합니다.만약 당신이 Object를 사용하고 있다면, 그것은 구별할 수 없을 것입니다.key2
그리고.key3
그들의 문자열 표현은 동일하기 때문입니다.
var o = new Object();
var key1 = 'key1';
var key2 = {};
var key3 = {};
o[key1] = 'value1';
o[key2] = 'value2';
console.assert(o.hasOwnProperty(key2), "o should contain key2.");
console.assert(!o.hasOwnProperty(key3), "o should not contain key3."); // Fails!
관련된
배열이 아닌 개체를 만들려는 것입니다.
그래서.
var Map = {};
Map['key1'] = 'value1';
Map['key2'] = 'value2';
키가 여러 가지 방법으로 존재하는지 확인할 수 있습니다.
Map.hasOwnProperty(key);
Map[key] != undefined // For illustration // Edit, remove null check
if (key in Map) ...
사용.in
연산자: 예:"key1" in a
.
if( a['desiredKey'] !== undefined )
{
// it exists
}
언급URL : https://stackoverflow.com/questions/6298169/how-to-create-a-hash-or-dictionary-object-in-javascript
반응형
'source' 카테고리의 다른 글
mariadb는 오류로 시작할 수 없습니다. (0) | 2023.10.11 |
---|---|
배열이 무시 순서와 동일해야 합니다. (0) | 2023.10.11 |
로드된 영상에 대한 jQuery 이벤트 (0) | 2023.10.06 |
마리아에 대한 wpcli를 통해 사용자의 암호 설정DB (0) | 2023.10.06 |
sqlite 데이터베이스를 pandas 데이터프레임으로 열고 변환하는 방법 (0) | 2023.10.06 |