0

我正在尝试将在包含 672 个元素的本地网页中修改的数组发布回服务器。为此,我把它放在一个字符串中,用逗号分隔,在这样的 Javascript 中:

    alert("begin");
    var sBsbData=""
    for (var x=0;x<24*4*7;x++)
        sBsbData = sBsbData + BsbData[x] + ',';

    alert(sBsbData);

BsbData 是一个 int 数组;值不超过 10。

这是任何处理器无需眨眼就能处理的代码……但两次警报之间大约需要十秒钟!我在这里做错了什么?我是否为此选择了一个特别糟糕的 concat 方法?

4

1 回答 1

3

它并不慢 - 它alert需要一段时间才能创建(出于某种奇怪的原因)。

概念证明:

var BsbData = [];
for (var i = 0; i < 24 * 4 * 7; i++) {
    BsbData[i] = Math.round(Math.random() * 10);
}

console.log("begin");
alert("begin");

var sBsbData=""
for (var x=0;x<24*4*7;x++)
    sBsbData = sBsbData + BsbData[x] + ',';

console.log(sBsbData);
// !!! This is where the code will halt for a bit (the string has already been created) !!!
alert(sBsbData);

也就是说 - 你应该只使用var sBsbData = BsbData.join(',');

于 2013-09-06T10:08:18.930 回答