我刚刚开始学习 Javascript,需要一些帮助。
我想从我完成的数组中构建一个随机选择器
var movie = ["star wars", "lotr", "moonlight", "avengers"]
function newMovie() {
var randomNumber = Math.floor(Math.random() * (movie.length));
document.getElementById("display").innerHTML = "You should watch " + movie[randomNumber];
}
现在我想添加更多选项,例如书籍、游戏......所以我为它创建了一个对象:
var chooseOption = {
watch: ["star wars", "lotr", "moonlight", "avengers"],
read: ["scott pilgrim", "harry potter", "eragon"],
play: ["starbound", "skyrim", "bioshock", "fallout"]
}
我有点不知道如何继续 - 我希望它首先选择一个属性,然后选择该属性的一个值,所有这些都是随机的。
然后以 "You should"+ [property] + [value] 的形式打印出来
我该怎么做?该对象是一种可行的方法,还是有更好的选择?
最佳答案
因此,首先编写一个通用的 pick 函数,该函数接受一个数组并返回一个项目。我将把它的实现留给你。
接下来,您需要使用Object.keys
来获取像['watch', 'read', 'play']
这样的数组。
var chooseOption = {
watch: ["star wars", "lotr", "moonlight", "avengers"],
read: ["scott pilgrim", "harry potter", "eragon"],
play: ["starbound", "skyrim", "bioshock", "fallout"]
}
var keys = Object.keys(chooseOption);
var type = pick(keys);
然后您可以通过该键访问属性来获取内部数组。
var items = chooseOption[type];
var item = pick(items);
最后,显示结果。
console.log('You should ' + type + ' ' + item);
关于javascript - 从 Javascript 对象中选择随机属性和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43115695/