有没有办法在JavaScript中实现StringBuilder

时间:2013-01-10 14:04:07

标签: javascript

  

可能重复:
  JavaScript string concatenation
  does javascript have a built in stringbuilder class?

众所周知,当我们str = str + "123"时,会创建一个新字符串。如果我们有大量的连接,那么它可能相当昂贵。有一种在JavaScript中实现StringBuilder的简单方法吗?

3 个答案:

答案 0 :(得分:6)

您可以将部件推入阵列,然后加入它:

var builder = []
builder.push( "some", "123" );
builder.push( "content" );
var str = builder.join("");

This SO question详细解释,另请参阅this class

答案 1 :(得分:1)

我认为,实现比普通字符串连接更快的StringBuilder绝非易事。这显然是构建器的原因。

如果数组完全将其转换为字符串,请填充数组。

答案 2 :(得分:1)

如果字符串是静态的,则JavaScript中的传统连接是最佳的。

var foo = 'a' + 'b' + 'c' + 'd';

在大多数浏览器中都是如此。 string-concatenation

如果字符串可能根据程序变化,则任何一种方法都同样有效。

var foo = ""+Math.random() + Math.random() + Math.random() + Math.random();
var foo = [Math.random(), Math.random(), Math.random(), Math.random()].join('');

浏览器之间的差异不是很大,但传统方式看起来好一点string-random-concatenation