javascript - 如何选择一个随机变量,然后从变量列表中选择一个随机变量?
问题描述
我有两个按钮。一个用于随机电影风味,例如。['爱','战争','真实']。我有这个工作。问题是,第二个按钮应该从选择的电影风味中选择随机电影。前任。如果选择“Love”,新的随机数将来自 Love List ['Noel', 'Titanic', 'Pearl Harbor']。感谢任何帮助,谢谢大家... ^ _ ^ ...
var movieFlavor = ['Love', 'War', 'True'];
var loveMovies = ['Titanic', 'Noel', 'Pearl Harbor',
]
var warMovies = ['PT-109', 'Firebase Gloria', 'Pearl Harbor',
]
var trueMovies = ['PT-109', 'Remember the Titians', 'Pearl Harbor',
]
function newRandomMovieFlavor() {
var randomFlavor = Math.floor(Math.random() * (movieFlavor.length));
document.getElementById('movieDisplay1').innerHTML = movieFlavor[randomFlavor];
}
function newRandomMovie() {
var randomMovie = Math.floor(Math.random() * (movieFlavor.length * randomFlavor));
document.getElementById('movieDisplay2').innerHTML = movieFlavor.length * randomFlavor[randomMovie];
}
解决方案
您可以在Math.floor(Math.random() * moviesByType.length)
数组长度范围内生成随机索引。
我维护了一个以电影类型为键的电影字典。
单击按钮时,我们可以读取movie-type
属性,然后按类型从字典中获取列表,并从该数组中返回一个随机元素。
const movieList = {
love: ['Love1', 'Love2', 'Love3'],
war: ['War1', 'War2', 'War3'],
true: ['True1', 'True2', 'True3']
};
const getRandomMovie = (e) => {
const type = e.target.getAttribute('movie-type');
let moviesByType = movieList[type] || [];
if(moviesByType.length) {
const randomIndex = Math.floor(Math.random() * moviesByType.length);
const movie = moviesByType[randomIndex];
console.log(`${type}: ${movie}`);
}
}
document.querySelectorAll('button').forEach(btn => btn.onclick=getRandomMovie);
<button movie-type="love">
Love
</button>
<button movie-type="war">
War
</button>
<button movie-type="true">
True
</button>
推荐阅读
- vuejs2 - 如何在从右面板更新用户信息的同时更新 VueJS 左面板用户列表
- schema.org - PropertyValue 中的值可以是数组吗?
- alibaba-cloud - 如何更改数据库实例的数据库引擎?
- android - BLE设备广告和android手机startScan回调之间的间隔时间不同
- unit-testing - 导入文件以测试 clojure 中的函数
- javascript - 为什么创建 laravel 项目时默认不创建 css 和 assets 目录?
- java - Spring:@ControllerAdvice 和 Spring AOP 之间的区别
- php - 注销按钮没有终止我当前的会话
- php - 致命错误:在 php 中调用字符串上的成员函数 query()
- python - 如何从 Django Admin 的 response_change 中更改模型值?