javascript - Math.random() 在循环中使用时不会给出新数字

标签 javascript database loops random

当我尝试使用 Math.random() 生成新的随机数时,无论如何,它每次都会给出完全相同的答案,但仅限于某些用途。

顺便说一句,我有一个自定义随机函数:

function random(min, max) {
 return Math.random() * (max - min + 1) + min;
}

例如,这段代码完全按照我想要的方式执行,它将 dataset.data[I][ii] 中的每个槽填充为一个新的随机数。

dataset.data.forEach((point, index) => {
 //fill dataset with random numbers
 dataset.data[index] = point.map(() =>
    Math.round(random(0, screen.get().width))
 );
});

但是,当我使用此代码时,它每次都会用完全相同的随机数填充数组。

dataset.data.forEach((point, index) => {
 //fill dataset with random numbers
 dataset.data[index][0] = Math.round(random(0, screen.get().width));
 dataset.data[index][1] = Math.round(random(0, screen.get().height));
});

我一直遇到这个问题,但我不明白,我确实知道有时会有大量相同的数字,但无论我做什么,在某些情况下,只有一种写法有效,这没有帮助。

最佳答案

当映射到数组时,Math.random() 会为该数组中的每个索引生成一个新的随机数,因此解决我的问题的方法是在 if 语句中使用索引。

arr = new Array(2).fill([]);
arr.forEach((point, index) => {
    arr[index] = point.map((array, index) => i===theSpotInYourArray?returnthis:orreturnthis
})

关于javascript - Math.random() 在循环中使用时不会给出新数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59539987/

相关文章:

java - 为什么我的 "While Loop"不打印找到平均值 "score"的计算?

c - 在 C 中使用用户输入执行

javascript - rss 提要阅读器脚本

javascript - jQuery hasClass() 方法未返回正确的值

javascript - Windows 上的 Python 标准输出

mysql - 如何确保我的代码中不会发生更新丢失?

MySQL按月和年过滤结果

javascript - $.addClass 不会立即更新 DOM 吗?

database - 我可以用哪种格式存储 golang 的 time.Time 在 scylladb 中?

javascript - 循环遍历多级数组