javascript - 为什么我的随机函数两次返回相同的值
问题描述
背景:我正在创建一个带有一些虚拟图表的虚拟网站。我需要一些类似的 js 对象中的随机值,如下所示:
object = {
x: static,
y: static,
...
data: random
}
所以我想出了这样的事情:
async function getOption() {
return getRandom();
}
async function setup() {
let template = {
static1: "xx",
static2: "xx",
option: 1
}
let v1 = template;
v1.option = await getOption();
let v2 = template;
v2.option = await getOption();
console.log(await getOption(), await getOption())
console.log(v1.option, v2.option)
}
function getRandom() {
return Math.floor(Math.random() * 100);
}
setup()
但是我注意到了一些我不明白的奇怪现象。如果我想分配一个新号码,我每次都会得到两次相同的“随机”值。此外,如果我在 a 中调用它console.log()
,它会按预期工作。
现在我的问题:
N°1:我怎样才能创建很多除了1之外具有相同属性的大对象?
N° 2:为什么我两次得到相同的值?这对我来说真的没有意义。我错过了什么吗?
解决方案
你有v1=template;
and v2=template;
,所以 v1 和 v2 是同一个对象。
如果要复制模板,请使用
v1 = {...template};
v2 = {...template};
推荐阅读
- python - 为什么我不能使用 python 在我的树莓派中创建杯子连接?
- java - 是否可以使用键和分区来消费 kafka 消息?
- laravel - 如何检查它返回的响应代码是否为“421”?
- javascript - 如何在 chrome 扩展中获取响应 JSON
- python - 如何使用递归在 BeautifulSoup 中进行抓取?
- c# - NEST 如何在子文档中查找字段
- python - 在 Wagtail 中使用 InlinePanel 创建模型实例
- axapta - TmpTaxWorkTrans 表中的 SourceBaseAmountCur 字段是如何计算的?
- python - 为什么编辑网格单元后会出现错误?
- flutter - Flutter 中的主屏幕小部件