JavaScriptPrincipiante9 oct 2025

¡El Orden de los Factores SÍ Altera el Producto... Si JavaScript lo Dice!

snippet.javascript
const numbers = [10, 1, 20, 2, 30, 3];
numbers.sort();
console.log(numbers);

¿Qué crees que imprime?

Salida Esperada

[1, 2, 3, 10, 20, 30]

⚠️ Salida Real

[1, 10, 2, 20, 3, 30]

¿Por qué pasa esto?

Prepárense para la sorpresa, porque `Array.prototype.sort()` en JavaScript es más caprichoso que un gato en una pasarela. 😼 - Cuando no le das una función de comparación, `sort()` se comporta como un bibliotecario que solo sabe leer el alfabeto. Convierte **TODO** a **cadenas de texto** y las ordena ¡lexicográficamente! 📚 - Así, el `10` se convierte en `'10'`, el `2` en `'2'`. Y en el mundo de las letras, `'10'` viene antes que `'2'` (porque '1' es menor que '2' alfabéticamente). ¡Es como si 'Manzana' viniera antes que 'Banana' y '10' viniera antes que '2'! 🤯 - El resultado es que tus números, que esperabas ver ordenados de menor a mayor, terminan en un guirigay alfabético. ¡Un caos numérico cortesía de la **conversión a string implícita**! Para poner orden en esta fiesta, siempre dale a `sort()` una función de comparación: `(a, b) => a - b`. ¡Así tus números sabrán comportarse! ✨

Conceptos relacionados

array-sortstring-conversiondefault-behavior