String JScript中的字符串联接?
如何在JScript中使用分隔符连接一组字符串 (我正在寻找一个线性运行时间的解决方案。)像String JScript中的字符串联接?,string,wsh,jscript,String,Wsh,Jscript,如何在JScript中使用分隔符连接一组字符串 (我正在寻找一个线性运行时间的解决方案。)像join()方法吗=D var elements = ["1", "2", "3"]; var joinedString = elements.join(','); 像这样的事情: ['a', 'b', 'c'].join(','); 然而,对于少量的字符串,+操作符也可以做得很好(根据具体情况可能做得更好)。下面是一个比较这两种方法的好例子 还有一个怀疑论者的页面。您可以在数组上使用join var
join()
方法吗=D
var elements = ["1", "2", "3"];
var joinedString = elements.join(',');
像这样的事情:
['a', 'b', 'c'].join(',');
然而,对于少量的字符串,+
操作符也可以做得很好(根据具体情况可能做得更好)。下面是一个比较这两种方法的好例子
还有一个怀疑论者的页面。您可以在数组上使用join
var strArray = [
"test1",
"test2",
"test3"
];
var output = strArray.join(", ");
这里是对两个不同方法的jsperf测试:。Join绝对是我尝试过的最快的方式,至少比Chrome快3倍
您必须亲自尝试jsperf和/或将其更改为您所关心的模型。令我惊讶的是,Firefox 6和Safari 5仅仅添加一组字符串就比使用.join()
更快
你说你正在寻找一个运行时间
线性的解决方案。我认为这意味着当字符串数量翻倍时,性能不会比翻倍差。这意味着您必须测试一系列不同的情况,看看哪种技术最接近线性性能。正在使用分隔符连接9个字符串。所以,我写了一篇文章,把18个字符串用分隔符连接起来。这些技术在Chrome中都不是线性的。奇怪的是,整体速度最慢的for-loop+=方法最接近线性。所以,我认为你必须决定你想要的是快速还是线性。我尝试过的最慢的方法是最接近线性的,但仍然很慢。如果要串联大量字符串,则必须测试特定情况,以确定哪一个字符串在线性或总体性能方面获胜。阵列中有它们吗?为什么不使用array.join('separator')
?不要使用+=连接字符串,它比下面的数组/连接方法慢…原因是JScript中的字符串不能真正连接。每次连接时,JScript引擎都必须创建一个全新的字符串。哇,你能做到吗??为什么它是一个数组方法??哇,很好,谢谢!因为它是连接数组的元素。