2

可能重复:
JavaScript 字符串连接
javascript 是否有内置的 stringbuilder 类?

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

4

3 回答 3

9

您可以将部件推入一个数组,然后加入它:

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

这个 SO question详细解释了它,另见这个类

于 2013-01-10T14:10:07.337 回答
1

我认为,实现一个比普通字符串连接更快的 StringBuilder 从来都不是一件容易的事。这显然是 Builder 的原因。

填充一个数组,如果它已满,则将其转换为字符串。

于 2013-01-10T14:08:49.180 回答
1

如果字符串是静态的,则 JavaScript 中的传统串联是最佳选择。

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

在大多数浏览器中都是如此。字符串连接

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

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

浏览器之间的差异不是太大,但传统的方式似乎更好一些字符串随机连接

于 2013-01-10T14:45:56.077 回答