sgm*_*nda 11 javascript html5 node.js
我想将一个字符串拆分成固定长度(例如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
Run Code Online (Sandbox Code Playgroud)
我认为必须有更好的方法来做我想要的.但我不想要额外的模块或库,只要简单的JavaScript就可以.
在问之前,我已经看到了一些使用其他语言解决此问题的解决方案,但它们并未考虑JavaScript而设计.
Dan*_*nte 24
你可以试试这个:
var a = 'aaaabbbbccccee';
var b = a.match(/(.{1,4})/g);
Run Code Online (Sandbox Code Playgroud)
请参阅此相关问题:https : //stackoverflow.com/a/10456644/711085和/sf/answers/594701831/(如果性能有问题,请参阅评论中的性能测试。)
第一个(较慢的)链接:
[].concat.apply([],
a.split('').map(function(x,i){ return i%4 ? [] : a.slice(i,i+4) })
)
Run Code Online (Sandbox Code Playgroud)
作为字符串原型:
String.prototype.chunk = function(size) {
return [].concat.apply([],
this.split('').map(function(x,i){ return i%size ? [] : this.slice(i,i+size) }, this)
)
}
Run Code Online (Sandbox Code Playgroud)
演示:
> '123412341234123412'.chunk(4)
["1234", "1234", "1234", "1234", "12"]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12150 次 |
最近记录: |