如何在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 }