素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

Array#someを改造する

Array#someは途中でループを抜けるときに便利なんだけど、(配列を走査するときに、途中でループを抜けるにはsomeが使える - 0xFFで知った)戻り値がtrueかfalseなので、最初にヒットしたものを取り出すときとかには使えない。

こうすればできる。

Array.prototype._some=function(callback,thisp){
var r;
this.some(function(n,i,a){
r=callback.call(thisp||this,n,i,a);
return r;
})
return r?r:false;
}

var a=[3,2,1,4,5]
var result=a._some(function(x)(x==4)&&'Hit!'+x);
console.log(result);//"Hit!4"

何かに使えそう。