配列の要素を検索

Array#searchとかあっても良さそうだけど、用意されていないようなので適当に定義。

/**
 * 配列から要素を検索
 * @param  a0  検索する要素またはテスト関数
 * @return  number  要素の添字。見つからない場合は-1
 */
Array.prototype.search = function(a0)
{
    if( a0 instanceof Function ){
        for( var i=0, l=this.length; i < l; i++ )
            if( a0(this[i]) ) return i;
    }else{
        for( var i=0, l=this.length; i < l; i++ )
            if( this[i] == a0 ) return i;
    }
    return -1;
};

用意されてそうで無いのは何故だろう。