【发布时间】:2021-03-24 09:26:05
【问题描述】:
我正在尝试随机化嵌套循环内的值:
let bools = {
first: true,
second: true,
third: true,
fourth: true,
fifth: true,
};
results = [];
for (let i = 0; i < 3; i++) {
for (let k in bools) {
bools[k] = Math.random() > 0.5;
console.log(bools[k]);
}
results.push({ i, bools });
}
console.log(results);
i 的每次迭代的结果都是相同的序列。我对此感到困惑并尝试了性能时间戳而不是随机数:
bools[k] = now() // from performance-now node package
并且它也为每次迭代返回了相同的精度时间戳序列。这告诉我的是内部循环只运行一次。为什么不是外部 for 循环的每次迭代?我怎样才能解决这个问题?谢谢 :)
【问题讨论】:
-
您只需操作一个名为
bools的对象并将其多次插入result。 -
我看到你使用了
results.push({ i, bools });。您对此有何期待?我不知道这是否真的是什么。像results.push({ i: bools });这样的东西会更好吗?还是两者做同样的事情? -
@Rojo 它仍然是同一个对象插入多个插槽
标签: javascript for-loop random nested-loops