从JavaScript中的哈希中获取随机元素

时间:2013-10-19 18:45:50

标签: javascript hash hashmap hashtable associative-array

我在JavaScript中有一个哈希表:

a['b'] = 'c';
a['d'] = 'e';

我知道我可以使用a.length获取哈希的长度。如何在哈希中获得随机元素?我不知道如何或者是否可以像数组一样索引它。

我知道我可以创建一个单独的哈希键数组,但是我希望这样做更容易,只处理1哈希。

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];
}