如果我具有以下条件:
var liststuff = {'key 1':'value 1', 'key 2':'value 2', 'key 3':'value 3'};
我应该如何获得随机密钥?
所以我的想法是我将运行一个函数,它将随机给我列表材料中的键之一,然后我可以用它来做我想做的事情。
尽管我要为每个值提供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];
但是随着键数量的增加,这将占用太多空间,并且想知道是否存在另一种更聪明的方式。
答案 0 :(得分: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)
答案 1 :(得分:1)
嘿,您可以使用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)]];
希望这会有所帮助