2019年7月1日月曜日

JavaScriptのforループについて

あまプロではウェブサイトを作成する事が有ります。

その際、謎現象に遭遇したのであメログ。

JavaScriptでHTML要素をgetElementsByTagName( )で取得し
var elements = document.getElementsByTagName( 'tr');
for( var i in elements)
{
    console.log( i);
}
の様にfor inループで回すと、何故か
0
1
2
3

item
という結果が出力されます。
何やねんitemって…。
ちなみに
var elements = document.getElementsByTagName( 'tr');
for( var i = 0; i < elements.length; i++)
{
    console.log( i);
}
という様にインクリメントするforやと発生しません。
なんかJavaScriptのfor...inループって癖が有りますね。

どないなってるんかなぁ…と思って調べたら
こういう仕様でした。
forループとfor...inループとfor...ofループ、それぞれ微妙にちゃう様です。
なので今回は
for( var element of document.getElementsByTagName( 'tr'))
{
    console.log( element);
}
for...ofループにし様としたんですが、for...ofはスマホのデフォルトブラウザで動かなかったので、諦めて普通のforループに戻しましたとさ…。