Variable arguments and map in JS can hurt
Given some array of numbers as strings:
const someNumStrings = ['1', '2', '05', '68'];
If you want them to be numbers, then you might be tempted to do something like:
someNumStrings.map(parseInt)
Which would be fine if parseInt
didn't allow multiple arguments, and if map only sent in the single element. But that's not how it works, so what you end up getting is a bit of a mess.
[1, NaN, 0, NaN]
The parseInt
function takes a radix as the second argument (and realistically anything else you want to pass to it won't cause it to explode). The Array.map
method takes a callback (in this case parseInt
) and gives that little sucker all the data you could want! In this case, the index is being passed as the radix, and parseInt
doesn't care about the others.
TL;DR: map(el => parseInt(el)) >>>>>>>>>> map(parseInt)
and if you ever intentionally encode the radix as the index of the element you're parsing... may god have mercy on your soul.