0

如何在 JScript 中加入一堆带有分隔符的字符串?

(我正在寻找具有线性运行时间的解决方案。)

4

3 回答 3

6

喜欢join()方法吗?=D

var elements = ["1", "2", "3"];
var joinedString = elements.join(',');
于 2011-08-30T22:02:24.233 回答
3

像这样的东西:

['a', 'b', 'c'].join(',');

但是,对于少量字符串,+操作符也可以做得很好(根据情况可能会做得更好)。这是一篇比较这两种方法的好文章。

还有一个jsperf页面供怀疑者使用。

于 2011-08-30T22:02:40.160 回答
2

您可以在数组上使用连接。

var strArray = [
    "test1",
    "test2",
    "test3"
];

var output = strArray.join(", ");

这是对几种不同方法的 jsperf 测试:http: //jsperf.com/joining-strings。加入绝对是我尝试过的最快的方法,至少是 3 倍(在 Chrome 中)。

您必须自己尝试 jsperf 和/或更改它以准确建模您关心的内容。令我惊讶的是,Firefox 6 和 Safari 5 只是将一堆字符串加在一起比使用.join().

您说您正在寻找具有linear运行时间的解决方案。我想这意味着当你将字符串数量加倍时,性能不会比加倍差。这意味着你必须测试一堆不同的情况,看看哪种技术最接近线性性能。第一个 jsperf连接了 9 个字符串,它们之间有分隔符。所以,我写了第二个 jsperf那是连接 18 个字符串,它们之间有分隔符。这些技术在 Chrome 中都不是非常线性的。奇怪的是,整体上最慢的 for 循环 += 方法最接近线性。所以,我认为你必须决定你想要快速还是线性。我尝试过的最慢的方法是最接近线性的,但它仍然很慢。如果您要连接大量的字符串,那么您必须测试该特定情况以查看哪一个在线性或整体性能方面获胜。

于 2011-08-30T22:03:11.237 回答