javascript - 如何获得随机密钥
问题描述
如果我有以下情况:
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];
但是随着密钥数量的增加,它会占用太多空间,并且想知道是否有一种不同的更智能的方法来做到这一点。
解决方案
您可以通过获取随机索引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)
推荐阅读
- javascript - 为什么我应该避免在 shouldComponentUpdate 中使用 _.isEqual
- javascript - Javascript,在 prev td 中获取输入值
- python - python - 如何删除每行(熊猫)中的重复列表?
- r - 如何删除在 2 列中以相反顺序包含相同对的行
- javascript - ComponentDidMount 反应原生状态
- go - golang protobuf 编组具有固定大小的空结构
- sql-server - 计算表中列之间的相关性
- python - Python dir(cv2) 上的 CV_USRTYPE1 深度参数在哪里?
- tags - 如何仅显示今天日期的 InfluxDb 标签?
- linux - crontab 没有启动脚本