我正在使用JQuery Mobile开发移动应用程序。想知道我是否可以在JQuery Mobile中以JAVA的方式创建HashMap?
如果是,那怎么样?如果可能的话,请给我一些例子。
答案 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]);
}