【问题标题】:How to get a random key如何获得随机密钥
【发布时间】:2019-06-22 17:51:57
【问题描述】:

如果我有以下情况:

var liststuff = {'key 1':'value 1', 'key 2':'value 2', 'key 3':'value 3'};

我应该如何获得随机密钥?

所以我的想法是我会运行一个函数,它会随机给我一个来自 liststuff 的键,然后我可以用它来做我想做的事。

我想为每个值提供 2 个键,其中第一个键是“键 n”,而第二个键是“n-1”(n = 键数):

例如

var belonging = {'Tom':'fish', 0:'fish', 'Jerry':'cheese', 1:'cheese', 'Billy':'pencil', 2:'pencil'};

然后我可以执行以下操作来获取随机密钥:

let randChoice = Math.floor(3 * Math.random);
belonging[randChoice];

但是随着密钥数量的增加,它会占用太多空间,并且想知道是否有其他更智能的方法来做到这一点。

【问题讨论】:

标签: javascript random key


【解决方案1】:

您可以通过Math.random * keys.length 获取随机索引,然后使用该索引获取密钥。

var obj = {'key 1':'value 1', 'key 2':'value 2', 'key 3':'value 3'};

var keys = Object.keys(obj);
var key = keys[Math.floor(Math.random() * keys.length)];
console.log(key)

【讨论】:

    【解决方案2】:

    您可以使用 Object.keys() 方法以一种简单的方式完成此操作,该方法返回给定对象的属性名称的数组。

    var items = {'key 1':'value 1', 'key1':'value 2', 'key 3':'value 3'};
    const allKeys = Object.keys(items)
    const randomValFromItems = items[allKeys[Math.floor(Math.random()*allKeys.length)]];
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      • 2015-03-08
      • 2021-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多