javascript - 每次执行函数时如何使随机数组项相同
问题描述
这是我尝试过的代码:
<script>
function random_Card() {
var colors = ["red", "yellow"];
var result = colors[Math.floor(Math.random() * colors.length)];
return result;
}
document.write(
'<div class="frontface" style=background-color:' + random_Card() + "></div>"
);
document.write(
'<div class="frontface" style=background-color:' + random_Card() + "></div>"
);
</script>
当result
返回变量时,它是不一样的,例如,如果我执行random_Card()
两次,我得到“红色”,而在第二次执行中,我得到“黄色”,但无论我执行多少次该函数,我都希望它是相同的。谢谢。
解决方案
如前所述,此函数将始终返回一个随机数,因为它每次都会执行。您可以做的是执行该函数一次,然后将其修复为创建的结果。第二次调用该函数时,它只会产生完全相同的对象,而不再执行任何操作。
var random_Card = function(){
var colors = [
"red",
"yellow"
];
var result = colors[Math.floor(Math.random()*colors.length)];
random_Card = function() { return result; };
return result;
};
推荐阅读
- azure - 我可以在 BotBuilder 中使用 PubNub 而不是 DirectLine 吗?
- powershell - Powershell - 命令文本未出现
- python - Python中多维数组的非连续切片
- python - 如何在 scipy 稀疏 lil_matrix 中存储显式 0 值?
- computability - 证明语言 L = {w ∈ {0, 1} ∗ | 输入 x} 的 Mw(x) ↓ 部分可判定但不可判定
- keras - 在具有重建概率的 keras 中实现变分自动编码器
- python - 声明属性后无法从我的列表中删除一行
- html - 带有空格的 Font Awesome 图标的绝对位置是否一致?
- ruby - 正则表达式匹配一些单词,不包括带点的字符串
- java - 为什么 proto3 java builder 上没有 get***Map() 方法的构建器版本?