如何在JS文件中创建HashMap(在JQM中)

时间:2013-02-06 09:37:09

标签: jquery jquery-mobile

我正在使用JQuery Mobile开发移动应用程序。想知道我是否可以在JQuery Mobile中以JAVA的方式创建HashMap?

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

3 个答案:

答案 0 :(得分:10)

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

var hashmap = {};

把东西放进去:

hashmap['key'] = 'value';

从中获取一些东西:

var value = hashmap['key'];

对于大多数用途,这样做,但它与hashmap不完全相同,请参阅此问题: JavaScript Hashmap Equivalent

答案 1 :(得分:0)

Javascript(EcmaScript 5)目前只有对象和数组。 ES Harmony将介绍地图和集合,但这有很长的路要走,直到它有足够的支持才能有效地使用它。

您可以使用普通的Object,在大多数情况下,它的行为类似于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;

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

答案 2 :(得分: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]);
}