正如在这个答案的更新3中所表明的那样,这种表示法:
var hash = {};
hash[X]
Run Code Online (Sandbox Code Playgroud)
实际上并不散列对象X; 它实际上只是转换X为一个字符串(通过.toString()它是一个对象,或者是各种基本类型的一些其他内置转换),然后在" hash"中查找该字符串,而不对其进行散列.也不检查对象相等性 - 如果两个不同的对象具有相同的字符串转换,它们将仅相互覆盖.
鉴于此 - 在JavaScript中是否有任何有效的哈希映射实现?(例如,第二个Google结果javascript hashmap产生一个实现,对于任何操作都是O(n).各种其他结果忽略了具有等效字符串表示的不同对象相互覆盖的事实.
从帖子:
发送要作为Dictionary <string,string>接收的JSON数组
我正在尝试做同样的事情.唯一的问题是我不知道密钥和值是什么.所以我需要能够动态添加键和值对,我不知道该怎么做.
有谁知道如何创建该对象并动态添加键值对?
我试过了:
var vars = [{key:"key", value:"value"}];
vars[0].key = "newkey";
vars[0].value = "newvalue";
Run Code Online (Sandbox Code Playgroud)
但这不起作用.