【发布时间】:2017-11-14 10:59:02
【问题描述】:
我想为每一天计算一些数字。实际数字无所谓,应该只是有些许不同,但一定要稳定。
所以到目前为止我做了以下事情:
now = new Date();
begin_of_week = new Date(now.getFullYear(), now.getMonth(), now.getDate() - now.getDay() + 1);
for (idx in [0, 1, 2, 3, 4]) {
seed = parseInt(idx)
+ begin_of_week.getFullYear() * 400,
+ begin_of_week.getMonth() * 31,
+ begin_of_week.getDate();
// ...
}
我希望这会给我一些seed 从周一到周五一周的每一天。不过,这几天的数字不同,但我现在的数字与上周相同。
JavaScript 的类型系统对我来说是个谜。我希望所有这些都是int,它们只是被加起来。我将idx 放在链的开头还是结尾都会有所不同。而应该什么都不做的parseInt实际上改变了结果。
这里发生了什么?我怎样才能添加这些数字?
【问题讨论】:
-
这里不需要
parseInt。你应该not usefor…inenumerations on arrays! -
哎呀,
for ... in使循环变量成为字符串。当然,这就解释了! -
400和31之后的逗号也是一个问题。我不知道他们是如何到达那里的,但这当然也是一个问题。
标签: javascript