【发布时间】:2016-04-25 11:32:52
【问题描述】:
我需要一个数字范围从 0 开始到大约 500 万结束的“列表”。我还必须在网络浏览器中显示它,所以我尝试了 javascript 和 php。当然,在“加载”所有数字时,浏览器会崩溃。有没有办法防止这种情况?真正让它在浏览器中工作?我猜 Javascript 不是正确的语言,但我怎么能解决这个问题?帮助将不胜感激:)
这是目前为止的代码
function range()
{
var array = [];
var start = (arguments[0] ? arguments[0] : 0);
var end = (arguments[1] ? arguments[1] : 9);
if (start == end) { array.push(start); return array; }
var inc = (arguments[2] ? Math.abs(arguments[2]) : 1);
inc *= (start > end ? -1 : 1);
for (var i = start; (start < end ? i <= end : i >= end) ; i += inc)
array.push(i);
return array;
}
var foo = range(1, 5607249)
for(var i=0;i<foo.length;i++){
document.write(foo[i]);
}
【问题讨论】:
-
为什么要同时显示 500 万个数字?语言不是这里的问题。存储 42MB 的双打也不是问题。
-
浏览器崩溃怎么崩溃了?你看到了什么错误(如果有的话)?哪个浏览器?哪个版本?你试过其他浏览器吗? 500万也不算多,应该可以搞定的。
-
这听起来像是一个 XY 问题。用例是什么?
-
另外,
document.write在这里也可能是一个非常糟糕的选择。 -
500 万个 document.writes,糟糕的选择。一次写入屏幕,更好的选择。
标签: javascript arrays numbers