4 ms·
Try using Array.from(arrayish).forEach() to convert the thing that looks like an array to an actual array. For instance, you can't use map() on a NodeList (docu
by sandrot 5y ago
Try using Array.from(arrayish).forEach() to convert the thing that looks like an array to an actual array. For instance, you can't use map() on a NodeList (document.querySelectorAll returns a NodeList), so you have to use Array.from(NodeList) to first convert it to an array.
- dragonwriter 5y ago> Try using Array.from(arrayish).forEach() to convert the thing that looks like an array to an actual array. Spread syntax is my goto for that: [...arrayish].forEach(...) But, it being JavaScript, there’s probably a subtle distinction in where Array.from(arrayish) works and where [...arrayish] works.
- hajile 5y agoThere's a very big distinction. `...foo` requires `foo` to be an iterable (implements the iterator known symbol). `Array.From()` only requires it to be array-like and not necessarily iterable.
- dragonwriter 5y agoGood point. I don't think I've run into many non-iterable arraylikes, but I understand they used to be more common (e.g., a number of standard things that are now specced as iterable arraylikes used to be just the latter) and there’s probably a lot lurking in library/legacy code.