Eche un vistazo a este experimento realizado en jsconsole.com
> parseInt("00") 0 > ["00"].map(parseInt) Array (1)[ 0 ] > ["123", "00"].map(parseInt) Array (2)[ 123,NaN ] > ["00", "123"].map(parseInt) Array (2)[ 0,NaN ] Me he topado con esto al intentar hacer un análisis de fecha y hora. El problema parecía ser el hecho de que no especifiqué qué base entera quiero. El uso parseInt(x, 10) resuelve mi problema, pero alguien podría explicarme cómo ["00"].map(parseInt) y ["123", "00"].map(parseInt) podrían diferir en el valor de "00" ? Puede que me esté perdiendo algo extremadamente obvio aquí, pero si no lo estoy, esto significaría que hay algo mal con Array.prototype.map o parseInt o ambos.
Gracias por adelantado.
Tiene que ver con los parámetros adicionales que el map agrega a la llamada al método. Pruebe el siguiente fragmento de código para obtener los resultados correctos. Esto evita que parseInt los reciba.
console.log(["123", "00"].map(it=>parseInt(it)))