ど素人から毛を生やす。<延>

IEはfor..ofループ使えないし、IE8はarray.indexOfすら使えない

Web > javascript 2019年7月23日(最終更新:2月前)

どもです。
タイトル10割の備忘録。

モダンブラウザで動かすなら、これだけの処理。


for(let array of parentArray){
	if(array.indexOf('配列にこの文字列が含まれていたら') != -1){
		console.log(array);
	}
}

まず、IE11すらfor..ofは使えないので、こうなります。


let c = parentArray.length;
for(let i=0; i<c; i++) {
	let array = parentArray[i];
	if(array.indexOf('配列にこの文字列が含まれていたら') != -1){
		console.log(array);
	}
}

しかしIE10以下はletが使えないので、こうなります。


var c = parentArray.length;
for(var i=0; i<c; i++){
	var array = parentArray[i];
	if(array.indexOf('配列にこの文字列が含まれていたら') != -1){
		console.log(array);
	}
}

随分とダサくなりましたが、まあ仕方ないでしょう。
と思いきや、配列.indexOf()がIE8で使えないそうです。

いや今どきIE8て。
旧いシステムで対応ブラウザが指定されているような例を除いて、IE8とかもはや情弱ツールでしょ…

対応しなきゃダメ?なんでさ。

この辺から溜息が憤りに変わってきます。


var c = parentArray.length;
for(var i=0; i<c; i++){
	var array = parentArray[i];
	var c2 = array.length;
	for(var ii=0; ii<c2; ii++){
		if(array[ii]=='配列にこの文字列が含まれていたら'){
			flag = true;
			break;
		}
	}
	if(flag){
		console.log(array);
	}
}

読み辛ッ…読み辛い!!


参考サイト
[Qiita]ES2015(ES6) 入門
[MDN Web Docs]Array.prototype.indexOf()

この記事は役に立ちましたか?
  • _(:3」∠)_ 面白かった (0)
  • (・∀・) 参考になった (0)
  • (`・ω・´) 役に立った (0)