如何在JavaScript中创build一个哈希或字典对象

我想在JavaScript中创build一个地图对象。 我来到以下想法:

var a = new Array(); a["key1"] = "value1"; a["key2"] = "value2"; 

但是我怎么才能find一个特定的钥匙是否存在?

如果您想要命名键,请不要使用数组,如果使用普通对象。

 var a = {}; a["key1"] = "value1"; a["key2"] = "value2"; 

然后:

 if ("key1" in a) { // something } else { // something else } 

JavaScript中现在可以使用内置的Maptypes。 它可以用来代替简单的使用Object。 它受到所有主stream浏览器的当前版本的支持。

地图不支持对象使用的[subscript]符号。 该语法隐式地将subscript值转换为原始string或符号。 Maps支持任何值作为键,所以您必须使用.get(key) .has(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."); 

你想创build一个对象,而不是一个数组。

像这样,

 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运算符:例如a中的"key1" in a

 if( a['desiredKey'] !== undefined ) { // it exists }