1

我在 JavaScript 中有一个哈希表:

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

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

我知道我可以创建一个单独的散列键数组,但我想让这更容易,并且只处理 1 个散列。

4

1 回答 1

1

据我所知,JavaScript 中没有哈希表或关联数组这样的概念。在 JS 中,这个东西被称为object。看看你的sintax a['b']='c',我可以得出结论,它a是一个对象(顺便说一句,对象没有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];
}
于 2013-10-19T19:02:07.170 回答