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

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

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

2019年7月23日に作成されたページです。
情報が古かったり、僕が今以上のど素人だった頃の記事だったりする可能性があります。

どもです。
タイトル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)