在 JavaScript 中循环遍历“Hashmap”
Posted
技术标签:
【中文标题】在 JavaScript 中循环遍历“Hashmap”【英文标题】:Loop through a 'Hashmap' in JavaScript 【发布时间】:2011-10-08 14:13:11 【问题描述】:我正在使用this 方法在 javascript 中制作人工“哈希图”。我的目标是键|值对,实际运行时间并不重要。下面的方法工作正常。
还有其他方法可以循环吗?
for (var i in a_hashMap[i])
console.log('Key is: ' + i + '. Value is: ' + a_hashMap[i]);
我遇到了一个问题,当数组只包含一个条目时,它会在第一个键之后输出一堆未定义的键。我有一种感觉,这是因为代码在一个使用 i 的循环中,即使当我在调试时它不应该发生。我也无法更改 i 因为 for 循环似乎根本不理解替换的 var。
有人有什么想法吗?
【问题讨论】:
看看这个线程:[Javascript Hashmap Equivalent][1] 希望它对你有所帮助。 [1]:***.com/questions/368280/… 【参考方案1】:你是说
for (var i in a_hashmap) // Or `let` if you're a language pedant :-)
...
i
在设置 for 循环时未定义。
【讨论】:
没想到to check。我想你是对的。 投反对票?let
除了,这与接受的答案相同:-/
+1 因为这不值得 -1。 @spraff,您可能想要添加更新(编辑答案)说明您在 cmets 中所说的内容。
+1 用于提及“让”。这是 let 的最佳用例。任何投反对票的人,可能都忽略了一个事实,JS 也用于服务器。【参考方案2】:
for (var i in a_hashmap[i])
不正确。应该是
for (var i in a_hashmap)
意思是“遍历a_hashmap
的属性,将每个属性名依次分配给i
”
【讨论】:
【参考方案3】:for (var i = 0, keys = Object.keys(a_hashmap), ii = keys.length; i < ii; i++)
console.log('key : ' + keys[i] + ' val : ' + a_hashmap[keys[i]]);
【讨论】:
这是遍历键和值的巧妙方法。【参考方案4】:你可以使用JQuery函数
$.each( hashMap, function(index,value)
console.log("Index = " + index + " value = " + value);
)
【讨论】:
【参考方案5】:在 vanilla Javacsript 中遍历地图很简单。
var map = ...;//your map defined here
for(var index in map)
var mapKey = index;//This is the map's key.
for(i = 0 ; i < map[mapKey].length ; i++)
var mapKeyVal = map[mapKey];//This is the value part for the map's key.
【讨论】:
【参考方案6】:试试这个以正确打印控制台...
for(var i in a_hashMap)
if (a_hashMap.hasOwnProperty(i))
console.log('Key is: ' + i + '. Value is: ' + a_hashMap[i]);
【讨论】:
【参考方案7】:这是一篇旧帖子,但我能想到的一种方法是
const someMap = a: 1, b: 2, c: 3 ;
Object.keys(someMap)
.map(key => 'key is ' + key + ' value is ' + someMap[key]);
应该使用这种迭代方式吗?这种方法有什么问题吗?
【讨论】:
【参考方案8】:要遍历 Hashmap,您需要获取键和值。
const new_Map = new Map();
for (const [key, value] of new_Map.entries())
console.log(`The key is $key and value is $value`);
它应该与键和值中的 hashmap 的键和值一起使用。
【讨论】:
【参考方案9】:var a_hashMap = a:1,b:2,c:3;
for (var key in a_hashMap)
console.log('Key: ' + key + '. Value: ' + a_hashMap[key]);
【讨论】:
以上是关于在 JavaScript 中循环遍历“Hashmap”的主要内容,如果未能解决你的问题,请参考以下文章