JavaScrip、forEachメソッドでオブジェクトを使う

あるページに含まれるアンカータブをすべて取得し、そのリンク先の一覧を表示する場合。

For Loopを使って書くと

var list = document.getElementsByTagName('a');
for (var i = 0, len = list.length; i < len; i++) {
  console.log(list.item(i).href);
}

forEachメソッドは配列の各要素に対して一度ずつしか実行されないので、こんな風に書いたらUncaught TypeError: list.forEach is not a function atのエラーになる。

const list = document.getElementsByTagName('a');
list.forEach(function(list)) {
    console.log(list)
}

なので、配列ではなくオブジェクトをforEachメソッドで使うためにはObject.keys() メソッドを使う。

const list = document.getElementsByTagName('a');
Object.keys(list).forEach(function (k) {
  console.log(list[k].href);
})





See Also