如何使用JQuery在二维数组和哈希表中存储键值对?

12

请问能否给我提供一个正确的链接或者一个如何在JQuery中使用二维数组或HashTable的示例?我尝试使用谷歌搜索但没有得到答案。我想避免使用任何插件。我想要做的就是存储一些信息并像使用HashTable一样检索它们。


你的二维数组更像一个表格还是一个矩阵? - Dan Stocker
这是一种包含键值对的哈希表。由于Jquery中没有HashTable,我认为二维数组会是更好的解决方案。我刚刚发现了jhashtable(http://www.timdown.co.uk/jshashtable/)。想知道在项目中使用它是否可行。 - Asdfg
3个回答

30

根据您想要用作“哈希表”键的内容,您可能需要使用具有数组属性的对象而不是二维数组。

例如:

var hashtable = {};
hashtable['screaming'] = ["red","orange"];
hashtable['mellow'] = ["skyblue","yellow","green"];

你也可以使用点号表示法设置和访问对象中的值:

hashtable.screaming = ["red","orange"];
alert(hashtable.screaming[0]);

如果您只是想跟踪 键值对,那么对象是最好的选择:

var hashtable = {};
hashtable['key1'] = 'value1';
hashtable['key2'] = 'value2';
hashtable.key3 = 'value3';

正是我刚要输入的内容 :) - Dan Stocker
正是我在寻找的。非常感谢你的回答。 - Asdfg

5

在JavaScript中,二维数组的写法不同,这就是为什么你在Google上没有得到结果的原因。

它的写法大致如下。

var arr = [];
arr[0] = [1,12,3,5];
arr[0][0]; // returns 1
arr[0][1]; // returns 12
arr[0][2]; // returns 3
arr[0][3]; // returns 5

或者

var outerA = new Array();
outerA[0] = new Array();
outerA[1] = new Array();
outerA[2] = new Array();

我不确定什么是最适合我的要求,但你的答案恰好符合问题的要求。感谢您的回答。但是您介意我接受Mario Menger的答案吗?因为它解释了我确切需要的东西。 - Asdfg
没问题!;) 你可以更新你上面的问题以适应你想要的答案。这样别人就不会感到困惑了。 - Reigel Gallarde

0

虽然回答有些晚了,但是你可以使用jhashtable js库,它几乎模仿了Java/C#中的hashMap数据结构。它甚至有一个方法toQueryString(),可以将键值对转换为HTTP请求的查询字符串。

http://www.timdown.co.uk/jshashtable/index.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接