以下の内容はhttps://plugout.hateblo.jp/entry/2022/01/14/000000より取得しました。


【JavaScript】HTMLCollectionsでArray.prototype.forEach()などを使用する

備忘録がてら。

ブラウザ上で[document.getElementsByClassName()]等を実行した場合に返却される[HTMLCollections]はArrayのような動きをするが、最低限の機能しか備わっていない。

もし[Array.prototype.forEach()]等を実行したいのであれば、[Array.prototype.forEach.call()]を利用すると実行可能。

※ Indexed Collectionという規格に沿っていれば利用できるみたい

例:demo1.js

Array.prototype.forEach.call(document.getElementsByClassName('video-stream'), console.log);

 

もしくは以下のようにいっその事Arrayへ変換してやると楽で良い。

例:demo2.js

[...document.getElementsByClassName('video-stream')].forEach(console.log);

 

追記

demo2.jsで行われているのは分割代入ではないのではないかという指摘を頂いたので修正しました。

個人的には微妙なラインだと思っているのですが、曖昧なことを書くべきではないと思ったためです。

ご指摘ありがとうございます。

 




以上の内容はhttps://plugout.hateblo.jp/entry/2022/01/14/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14