如何构造一个长字符串

时间:2010-04-09 19:17:57

标签: javascript

我需要用javascript构造一个长字符串。多数民众赞成我试图这样做:

var html = '<div style="balbalblaba">&nbsp;</div>';
for(i = 1; i <= 400; i++){
   html+=html;
};

当我在firefox中执行它时,它会花费很长时间或者让它崩溃。最好的方法是什么?通常在JS中构造大字符串的最佳方法是什么。

有人可以帮助我吗?

4 个答案:

答案 0 :(得分:12)

我认为你的意思是html += html;

如果你这样做,你的html字符串的长度将是37×2 400 = 9.5×10 121 ,这超出了任何浏览器的限制,在任何计算机上,任何 [1] 已知的Universe都可以处理。

如果您只想重复该字符串400次,请使用

var res = "";
for (var i = 0; i < 400; ++ i)
   res += html;
return res;

var res = [];
for (var i = 0; i < 400; ++ i)
   res.push(html);
return res.join("");

有关更多选项,请参阅Repeat String - Javascript


[1]:与“这个宇宙”一样。

答案 1 :(得分:6)

在某些浏览器中,字符串连接非常慢(咳嗽 IE6 *咳嗽*)。加入数组应该比使用连接循环快得多:

var arr = new Array(401);
var html = arr.join('<div style="balbalblaba">&nbsp;</div>');

答案 2 :(得分:1)

另一种方法是使用Array创建Array.join('')次蜇。这实际上是Python构建字符串的方式,但它也适用于JavaScript。

答案 3 :(得分:0)

var src = '<div style="balbalblaba">&nbsp;</div>';
var html = '';
for(i = 1; i <= 400; i++){
   html=+src;
};

你的代码将字符串加倍400倍。