source

자바스크립트에서 해시나 사전 개체를 만드는 방법

factcode 2023. 10. 6. 22:04
반응형

자바스크립트에서 해시나 사전 개체를 만드는 방법

자바스크립트로 지도 객체를 만들고 싶습니다.저는 다음과 같은 생각을 하게 되었습니다.

 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

반응형