#27538 a ver monguer:
[2, 10, 1, 21].sort((a, b) => a - b)
Si no le pasas una función ordena por defecto alfabeticamente, entonces esto es true: 1 < 200 < 4
#27551 estoy intentando buscar por que sucede eso pero no hay manera xD
Vale, lo he encontrado: https://www.quora.com/Why-is-0-1+0-2-not-equal-to-0-3-in-most-programming-languages
0.1 + 0.2 is really 0.1000000000000000055511151231257827021181583404541015625 + 0.200000000000000011102230246251565404236316680908203125 = 0.3000000000000000444089209850062616169452667236328125, whereas the number closest to 0.3 is actually 0.299999999999999988897769753748434595763683319091796875
#27551 Has descubierto esas cosas de js ahora? xDDD
Es culpa del punto flotante y las sumas.
0.2 + 0.1 realmente no es 0.3 en punto flotante, es 0.300000000004 o algo así
Mientras que cuando escribes 0.3 a secas realmente es 0.2999999999996 o por ahí (el número más próximo a 0.3 que no se cual es ahora mismo)
Claro que otros lenguajes decentes ya tienen estas mierdas más que solucionadas.
Mas info: https://en.wikipedia.org/wiki/Floating-point_arithmetic#Accuracy_problems
#27559 Nah, lo que pasa es que estoy viendo memes de javascript y mola mucho.
"[]" != true
true
"[]" == false
false
"2" + "2"
"22"
"2" + "2" - "2"
20
#27560 Eso es porque realmente "[]" no es true ni false xD. Puedes considerarlo como que es algo o que existe. Si quieres validar los tipos pues usas === que para eso está.
Esto puede ser bueno o malo según se mire. A mí particularmente me parece un comportamiento extraño en algunos casos, como JS en general.