かえでBlog

色々なことを徒然と……

IEでのindexof使用する際の注意

      2013/10/11

配列内の文字列検索としてindexofを使う方法が結構簡単です。

しかし、IE8以前ではindexof使えないみたいですね……

自分IE9で確認作業していたのですが、XPユーザーからjavascriptエラーが出るよと言われ…調べてみたらわかりました。

対策はこちらのを参考にしました。

とりあえずIEの場合は上のほうに以下の関数を定義すればOK

if(!Array.prototype.indexOf){
	Array.prototype.indexOf = function(target,index){
		//indexが数値かどうかの判断
		if(isNaN(index)){
			index = 0;
		}
		for(var i = index; i < target.length; i++){
			if(this[i] === target){ 
				return i;
			}
		}
		return -1;
	}
}


これでindexofで検索することができますし、さらにindexに数値を入れることで配列内のindex番目から検索することができ、配列内の同じ文言のカウントを取ることもできます。

この関数を使わないで使用するにはIE9からなのでまだまだこの対策は必要でしょうね……

 - JavaScript , ,