【发布时间】:2014-04-30 18:17:23
【问题描述】:
我想为 0 到 256^3 之间的整数生成一个随机顺序(以随机获取所有颜色),所以我现在使用这种方式:
var c = [],
j = 0;
//enum
for (;j<16777216;j++) c[j] = j;
//calculate random elements faster
for(;c.length;c.splice(j,1)) {
j = Math.floor(Math.random() * c.length);
//every j is a random number between 0 and 256^3
}
生成所有数字需要很长时间...您知道一种时间性能更好的方法来解决这个问题吗?
【问题讨论】:
-
你想要惰性评估。在 ES6 中(如果您在这种情况下使用 Node),您可以使用
yield以简短的语法编写它。由于它还不能在浏览器中真正工作,您可以使用闭包来模拟状态。绝对不要提前评估所有数字。 -
也许这会有所帮助:stackoverflow.com/q/2450954/1169798
标签: javascript random colors