所以我在寻找最快的反转字符串函数。
这里是我的函数和所有的函数,我发现在互联网上和他们的perfromance测试:
https://jsperf.com/javascript-reversing-string-performance
看起来最快的一个(在我看来也是最漂亮的)是这样的:
function reverseString(str) {
return str.split().reverse().join("");
}
但也许有更有效,更快的方法来做到这一点?
所以我在寻找最快的反转字符串函数。
这里是我的函数和所有的函数,我发现在互联网上和他们的perfromance测试:
https://jsperf.com/javascript-reversing-string-performance
看起来最快的一个(在我看来也是最漂亮的)是这样的:
function reverseString(str) {
return str.split().reverse().join("");
}
但也许有更有效,更快的方法来做到这一点?
6条答案
按热度按时间lb3vh1jj1#
除了内置的reverse函数之外,有几十种不同的方法可以实现这个功能,因为JavaScript没有这个函数。下面是我在JavaScript中解决字符串反转问题的三种最有趣的方法。
溶液1
解决方案二
解决方案三
在ES6中,您还有一个选项
vfhzx4xs2#
这个似乎更快:
f87krz0w3#
基于
davaakhuu-erdenekhuu
解决方案,我创建了一个基准测试,以便您测试哪种解决方案最适合您https://jsbench.me/4bkfflcm2z我在MacBook Pro 16上的Firefox和Chrome上运行过,似乎第一个选项在
Firefox
上最快,第三个选项在Chrome
上最快希望对你有用
hl0ma9xz4#
从输入字符串的末尾开始操作是最佳的,特别是取决于如何组合字符。请记住,当您通过在开头插入(或删除)元素来修改数组时,所有其他元素的索引都必须调整。
dojqjjoe5#
对于任何
ArrayLike
类型,最快的反转方式是逻辑上的,通过将其 Package 成一个反转的可迭代对象:现在,您可以反向迭代任何数组、字符串或缓冲区,而无需对反向数据进行任何额外的复制或处理:
这是最快的方法,因为您不复制数据,也不做任何处理,您只是逻辑地反转它。
ukqbszuj6#
我在Firefox和Chrome中测试了我的方法,它是这里给出的方法中最快的方法。
所有测试均运行here