What does map(Number) do here?

var arr1 = strArr[0].match(/\d+/g).map(Number);

is equivalent to

var arr1 = strArr[0].match(/\d+/g).map((str, ind, arr) => Number(str, ind, arr));

The reason Number works despite passing extra arguments in is because it ignores everything but the first argument. You cannot expect every function to behave accordingly, since not all functions ignore everything but the first argument, but in this case it is a convenient shortcut. Another neat example that works well is converting truthy and falsy values to booleans:

var arrBool = arrAny.map(Boolean);

strArr[0] //selects the first string. "[1,2,3,4]"

.match(/\d+/g)  // give an array of all continuos strings of digits. ['1','2','3','4']

.map(Number)  // Calls Number on each value in the array (casting it to a number)
              // and returns the array of results. [1,2,3,4]
              //
              // Keep in mind Number(val) attempts to create a Number from 
              // what ever is passed to it. If it is a string itll
              // try to convert the string to a numerical value. 

Its a complicated way of parsing a string containing an array literal. Seems like a complicated way of doing:

JSON.parse(strArr[0]) 

but without more context I cant tell you if its bad programming or if there is a good reason for it.