3

我正在使用 JQuery Mobile 开发一个移动应用程序。想知道我是否可以像在 JAVA 和 JQuery Mobile 中那样创建 HashMap?

如果是,那么如何?如果可能的话,请给我一些例子。

4

3 回答 3

10

在纯 Javascript 中,可以创建与 java HashMap 非常相似的东西:

var hashmap = {};

在里面放点东西:

hashmap['key'] = 'value';

从中得到一些东西:

var value = hashmap['key'];

对于大多数目的,这会做,但它与哈希图并不完全相同,请参见例如这个问题: JavaScript Hashmap Equivalent

于 2013-02-06T09:47:22.827 回答
0

Javascript (EcmaScript 5) 目前只有对象和数组。ES Harmony将引入 Maps 和 Sets,但距离获得足够广泛的支持以有效使用它还有很长的路要走。

您可以使用普通对象,在大多数情况下,它的行为类似于 Java-Hashmap。

// initialisation
var o = { key:"value", "another key", 3};
// or
var o = {};
o.key = "value";
// access property
alert(o.key);         // dot-notation
alert(o["key"]);      // bracket notation, same as array[i]
// delete property
delete o.key;

如果密钥是有效标识符,则不需要引用它,也可以使用点符号轻松访问它,如果不是(保留关键字或其中的空格或...),则需要使用双引号对其进行引用或单引号并用括号表示法解决它。

于 2013-02-06T09:43:04.777 回答
0

在 JavaScript 中动态创建地图的一种简单方法是使用以下方式。

我正在使用包含 html 元素 id 的数组创建地图。最后,我想将 html 元素的 id 和值放在地图中的键值对中。

var selectedFilterValuesMap = {};

for (var i = 0; i < filterIdArray.length; i++) {        
    selectedFilterValuesMap[filterIdArray[i].trim()] = $("#"+filterIdArray[i].trim()).val();
}

而且,我可以像这样访问地图中的值:

for(var x in selectedFilterValuesMap){
    alert("key - "+x+"\n val - "+selectedFilterValuesMap[x]);
}
于 2016-09-24T07:54:22.683 回答