我需要用javascript構造一個長字符串。多數民衆贊成我是如何做到這一點:如何構造一個長字符串
var html = '<div style="balbalblaba"> </div>';
for(i = 1; i <= 400; i++){
html+=html;
};
當我在firefox中執行它的年齡或使其崩潰。什麼是最好的方式來做到這一點?通常在JS中構造大字符串的最佳方法是什麼?
有人可以幫我嗎?
我需要用javascript構造一個長字符串。多數民衆贊成我是如何做到這一點:如何構造一個長字符串
var html = '<div style="balbalblaba"> </div>';
for(i = 1; i <= 400; i++){
html+=html;
};
當我在firefox中執行它的年齡或使其崩潰。什麼是最好的方式來做到這一點?通常在JS中構造大字符串的最佳方法是什麼?
有人可以幫我嗎?
我假設你的意思是html += html;
。
如果這樣做,在你html
字符串的長度將是37 = 9.5 這超出了任何瀏覽器的限制,在任何計算機,在任何[1]已知宇宙可以處理。
如果你只是想重複串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]:在「這個宇宙」中。
var src = '<div style="balbalblaba"> </div>';
var html = '';
for(i = 1; i <= 400; i++){
html=+src;
};
您的代碼將字符串翻倍400倍。
我認爲'html = + src'使得'html'等於0. – Gabe 2010-05-08 16:50:31
另一種方法是通過創建一個Array
的刺,然後使用。這實際上是構建字符串的Python方式,但它也適用於JavaScript。
字符串串聯在某些瀏覽器中很慢(咳嗽 IE6 *咳嗽*)。加入數組應比循環串聯快得多:
var arr = new Array(401);
var html = arr.join('<div style="balbalblaba"> </div>');
重複? http://stackoverflow.com/questions/202605/repeat-string-javascript – 2010-04-09 19:22:00