string split same length
HTML
<script src="https://raw.github.com/documentcloud/underscore/master/underscore-min.js"></script>
<div id="before">
<span>before:</span><span class="value"></span>
</div>
<div id="after">
<span>after:</span><span class="value"></span>
</div>
<div id="console">
</div>
JavaScript
$(function() {
var log = function(){
$("<p>").text(_(arguments).join("")).appendTo("#console");
},
first = function(size) {
size = size || 1;
if (this.length < size) {
return this
} else {
return this.slice(0, size);
}
},
last = function(size) {
size = size || 1;
if (this.length < size) {
return this;
} else {
return this.slice(this.length - size);
}
},
split = function(size){
if(this.length < size){
return [this,null];
}else{
return [first.call(this,size),
last.call(this,this.length-size)]
}
},
sameSize = function(size){
var result = [];
log("this=",JSON.stringify(this));
if(this.length < size){
result.push(this);
}else{
var ary = split.call(this,size);
result.push(ary[0]);
if(ary[1]){
result.concat(sameSize.call(ary[1],size));
log("result=",JSON.stringify(result));
}
}
return result;
}
var a = "abcdefxyz";
log("start");
$("#before .value").text(a);
$("#after .value").text(JSON.stringify(sameSize.call(a, 3)));
});