development

JavaScript에서 해시 또는 사전 객체를 만드는 방법

big-blog 2020. 5. 31. 10:52
반응형

JavaScript에서 해시 또는 사전 객체를 만드는 방법


이 질문에는 이미 답변이 있습니다.

자바 스크립트로 맵 객체를 만들고 싶습니다. 나는 다음과 같은 생각을했다.

 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 
}

내장 된지도 유형이 이제 JavaScript로 제공됩니다. 단순히 Object를 사용하는 대신 사용할 수 있습니다. 모든 주요 브라우저의 현재 버전에서 지원됩니다.지도는

[subscript]

객체가 사용 하는 표기법을 지원하지 않습니다 . 이 구문은 암시 적으로

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.");

 

값은 속성으로 저장되므로 객체는 기본 문자열과 기호 만 키로 지원합니다. 당신이 객체를 사용한다면, 구별 할 수 없을 것

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

반응형