De acuerdo con MDN Math.min solo acepta números, y si uno de los argumentos no es un número, regresará NaN. Es cierto que si se pasa un array con varios números obtenemos NaN, así: Math.min([1,2])pero si utilizamos una matriz con un solo número, Math.mindevolverá el número de la matriz, como en este ejemplo: Math.min([5]). ¿Alguien tiene una idea de por qué vemos este comportamiento indocumentado?
javascript
math
alguien235
fuente
fuente

Respuestas:
Eso no es lo que dice ( énfasis en negrita mío):
Conversión de tipo:
Math.minutilizaToNumberpara convertir sus argumentos.ToNumberutilizaToPrimitivepara convertirObjects (yArrays sonObjects).ToPrimitiveusostoString[5].toString()es decir'5', lo que se devuelveToPrimitive, lo que lo devuelveToNumber, lo que lo analiza5y lo devuelveMath.min, para lo cual es un argumento válido, porque no lo esNaN.[1, 2].toString(), OTOH, es'1, 2', que se devuelve aToPrimitive, que se devuelve aToNumber, que se analizaNaN, porque no es una representación de número válida.ToNumberluego pasaNaNaMath.min, que luego regresaráNaN, porque (como MDN lo dice) "uno de sus argumentos no se puede convertir en un número" o (como lo especifica la especificación) "Si algún valor es NaN, el resultado es NaN".fuente
Number([1,2]);resultados NaN peroNumber([1])resultados 1.