【发布时间】:2012-05-15 13:01:07
【问题描述】:
我想将一个字符串分割成固定长度(例如N)的片段。当然,如果原始字符串的长度不是N的倍数,最后一段可以更短。
我需要最快的方法来做到这一点,但也是最简单的写法。到目前为止,我一直这样做的方式如下:
var a = 'aaaabbbbccccee';
var b = [];
for(var i = 4; i < a.length; i += 4){ // length 4, for example
b.push(a.slice(i-4, i));
}
b.push(a.slice(a.length - (4 - a.length % 4))); // last fragment
我认为必须有更好的方法来做我想做的事。但我不想要额外的模块或库,如果可能的话,只需要简单的 JavaScript。
在询问之前,我已经看到了一些使用其他语言解决此问题的解决方案,但它们在设计时并未考虑到 JavaScript。
【问题讨论】:
-
你真的每次都写出来只是为了避免函数调用吗?
-
是什么让您认为您可以拥有最快的代码执行和简单的实现?这两种品质经常相互竞争。
-
这是另一个实现,但仍然与您的非常相似:phpjs.org/functions/str_split:530
-
@Esailija 他在什么地方说的? @sgmonda 我认为没有更好的方法。由于 javascript
string没有执行此操作的方法,因此您拥有的几行代码就可以了。这也应该足够快。 -
尝试使用
String.substring或String.substr代替String.slice并比较性能。
标签: javascript html node.js