partition() 配列を条件分けする
<script>
Array.prototype._each = function(iterator){
for(var i=0, l=this.length; i<l; i++){
iterator(this[i]);
}
};
Array.prototype.each = function(iterator){
var index = 0;
this._each(function(v){
iterator(v, index++);
});
}
Array.prototype.collect = function(iterator){
var iterator = iterator || function(x){return x};
var rs = [];
this.each(function(v, k){
rs.push(iterator(v, k));
});
return rs;
}
Array.prototype.partition = function(iterator){
var trues = [], falses = [];
this.each(function(v, k){
(iterator(v, k)? trues : falses).push(v);
});
return [trues, falses];
};
var rs = "hoge moge foo bar".split(' ').partition(function(v, k){
return (v.length > 3);
});
console.log(rs);
</script>