Cuando estaba tratando de entender cómo funciona la función sort (me refiero a native js) ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort ) y usé su función :
let numbers = [4, 2, 5, 1, 3]; numbers.sort((a, b) => a - b); console.log(numbers);Agregué un console.log, pero el primer elemento fue el segundo:
let numbers = [4, 2, 5, 1, 3]; numbers.sort((a, b) => console.log('a - is - '+ a)); console.log(numbers);¿Por qué? ¡Gracias por adelantado!
Se olvidó de devolver algo (aparte de undefined ) de su versión de registro, por lo que no se puede ordenar. También solo registra uno de los valores.
let numbers = [4, 2, 5, 1, 3]; numbers.sort((a, b) => { console.log('a: ' + a + ' - b: ' + b); return a - b }); console.log(numbers);Echar un vistazo a la especificación no indica explícitamente por qué los elementos se pasan en un orden aparentemente inverso y parece estar abierto a la interpretación por parte de los implementadores del motor JS. Como tal, podría esperar ver un comportamiento diferente con otros motores JS, aunque es probable que todos implementen esto de la misma manera.