This blog post sums it up beautifully, though I don’t understand how a NodeList can be tricked so that one can call ‘map’ on it. If NodeList is a ‘subclass’ of Array, then it should ‘inherit’ the map function.

For reference, if the link goes dead, here is how to call map on NodeList:

1
2
3
Array.prototype.map.call(nodelist, n => {
  console.log(n.innerHTML)
})