我在JavaScript中有一个哈希表:
a['b'] = 'c';
a['d'] = 'e';
我知道我可以使用a.length
获取哈希的长度。如何在哈希中获得随机元素?我不知道如何或者是否可以像数组一样索引它。
我知道我可以创建一个单独的哈希键数组,但是我希望这样做更容易,只处理1哈希。
答案 0 :(得分:0)
据我所知,JavaScript中没有哈希表或关联数组这样的概念。在JS中,这个东西叫做 object 。并且查看你的sintax a['b']='c'
我可以得出结论a
是一个对象(顺便说一下,对象没有'magic'length
属性,就像数组那样。)
您可以从对象a
获取与Object.keys(a)
一样简单的键数组(属性名称),因此完整的解决方案将是这样的
function randomValueOf( obj ) {
var keys = Object.keys(obj);
var len = keys.length;
var rnd = Math.floor(Math.random()*len);
var key = keys[rnd];
return obj[key];
}