我的文字内容如下:
var text = "asd^dfdf^dsfgdsfg^zdfsd^sdfsdf^dfsdf^dsfsdf^dfsdf^dfsf^sdfsdf^..."
我想将文本拆分为
^
的第5次出现的倍数,并传递给带有^
符号的函数。如果元素中有31个
^
,则:第5个,第10个,第15个,第20个,第25个,第30个,然后其余的应传递给函数(即使用^
的第31个)。我更喜欢
for
循环,例如:var spl = text.split(); //up-to 5th multiple
for(i=0; i<spl.length; i++){
passfun(upto 5th^ with cap symbol)
}
例:
var text = "asd^dfdf^dsfgdsfg^zdfsd^sdfsdf^dfsdf^dsfsdf^dfsdf^dfsf^sdfsdf^sssad^gsds..."
passfun("asd^dfdf^dsfgdsfg^zdfsd^sdfsdf^"); //1st time
passfun("dfsdf^dsfsdf^dfsdf^dfsf^sdfsdf^");//2nd time
passfun("sssad^gsds");//last
最佳答案
试试这个
var text = "asd^dfdf^dsfgdsfg^zdfsd^sdfsdf^dfsdf^dsfsdf^dfsdf^dfsf^sdfsdf^...";
var spl = text.split('^');
Array.prototype.chunk = function ( n ) {
if ( !this.length ) {
return [];
}
return [ this.slice( 0, n ) ].concat( this.slice(n).chunk(n) );
};
console.log(spl.chunk(5)[0].join('^')+'^');
更多信息
Split array into chunks
演示在这里:
https://jsfiddle.net/bo4eacv5/1/