javascript - 从 Javascript 对象中选择随机属性和值

标签 javascript html

我刚刚开始学习 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/

相关文章:

javascript - 如何更改动态生成的选项表单元素的innerHTML

java - 如何从 HTML 页面创建 Android 对话框?

javascript - 如何为表格单元格 insidehtml 创建 OnClick 事件

javascript - 使用存储的颜色在 ng-repeat 中设置动态背景颜色

JavaScript:删除对象内的数组元素

javascript - 如何删除 Facebook 分享按钮上的分享数量

javascript - Firebug 没有显示错误的堆栈跟踪?

javascript - 将读卡器中的信用卡信息捕获到不可编辑的文本字段中

javascript - Meteor 中的延迟加载模板

html - 调整大小时 CSS float 时 ​​Chrome 中的响应错误