bokunonikki.net
JP / EN

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

Sun Jun 16, 2019
Sun Jun 16, 2019

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

For Loopを使って書くと

1
2
3
4
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のエラーになる。

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

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

1
2
3
4
const list = document.getElementsByTagName('a');
Object.keys(list).forEach(function (k) {
  console.log(list[k].href);
})
See Also