detect() / find() 要素を見つける
<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;
try{
this._each(function(v){
iterator(v, index++);
});
} catch(e){
if(e != $break) throw e;
}
};
Array.prototype.detect = function(iterator){
var rs;
this.each(function(v, k){
if(iterator(v, k)){
rs = v;
throw $break;
}
});
return rs;
};
var $break = {};
var kekka = "foo,bar,hoge".split(',').detect(function(v, k){
if(v.length >= 4) return v;
});
console.log(kekka);
</script>