Y ahora, el último método de matriz.
del que quiero hablar rápidamente,
porque también lo usamos con bastante frecuencia
en aplicaciones React, es el método de clasificación.
Y como dice el nombre,
Podemos usar este método para ordenar una matriz.
Así que, básicamente, comencemos con una pequeña matriz de demostración.
Démosle solo algunos números,
y creemos aquí una nueva matriz basada en esa matriz.
Entonces x.ordenar,
y aquí necesitamos pasar una función con dos argumentos
y normalmente los llamamos simplemente a y b.
Y en realidad no entraré en
cómo este algoritmo y cómo funciona este método aquí,
pero déjame decirte que para ordenar esta matriz
de forma ascendente, hacemos un menos b.
¿bueno?
Y ahora, oh, y en realidad no podemos hacer esto.
porque aparentemente ya lo usamos antes.
Bien, ahora echemos un vistazo a ordenado.
Y efectivamente, ahora está ordenado de forma ascendente.
Entonces, comenzando desde el número más bajo,
hasta llegar a lo más alto.
Ahora muy, muy brevemente, lo que sucede aquí es que
Básicamente, JavaScript revisa la matriz,
entonces lo recorre y captó esta función aquí.
Y a y b son siempre el valor actual y el siguiente valor.
Y luego aquí en la función de devolución de llamada,
cuando devolvemos un valor negativo,
entonces estos dos números básicamente se ordenarán
de forma ascendente.
Entonces el pequeño número será lo primero,
y luego vendrá el número mayor.
Y si hacemos lo contrario,
entonces si devolvemos un número positivo,
entonces, mientras sucederá lo contrario,
entonces estos dos valores se ordenarán de forma descendente.
Y así, devolvemos estos números positivos o negativos.
simplemente restando uno menos el otro.
Entonces aquí a y b en este ejemplo serán tres y siete,
y entonces tres menos siete es menos cuatro.
Y entonces, sí, luego se ordenarán de forma ascendente,
Como dije antes.
Pero eso no es realmente importante.
Básicamente deberías seguir esto como una receta.
Entonces, cuando haces menos b,
se ordenará de forma ascendente.
Cuando haces b menos a, entonces desciendes.
De hecho, ahora comenzamos con nueve y con uno.
Ahora bien, ¿qué es lo más sorprendente del método de clasificación?
es lo que sucede cuando ahora revisamos arr.
Así que arr también se ha solucionado, ¿verdad?
Entonces también ahora comienza desde nueve, termina en uno,
y cambiamos esto,
entonces verás que ambas matrices son exactamente iguales.
Entonces, ¿qué pasó aquí?
Bueno, lo que pasó es que
a diferencia del método de filtrado y reducción de mapas,
Este no es un método funcional.
Entonces este es en realidad un método que muta,
entonces cambia la matriz original.
Y en realidad ni siquiera tuvimos que almacenar esto.
en una nueva matriz, ¿verdad?
Porque de todos modos ya cambió esta matriz original.
Sin embargo, normalmente no queremos que eso suceda,
especialmente en un marco de front-end como React,
lo cual realmente no nos gusta que mutemos datos.
Entonces, un buen truco que podemos hacer aquí.
es tomar primero una copia de la matriz,
simplemente haciendo array.slice y abriendo y cerrando.
Y esto básicamente devolverá una matriz completamente nueva,
que es una copia de éste.
Y entonces, en esa matriz, podemos encadenar el método de clasificación.
Y entonces ves que con esto,
lo ordenado sigue siendo, sí, la matriz ordenada,
pero arr is ahora vuelve a ser el original.
Entonces ahora no se ha visto afectado porque, sí,
antes de clasificar tomamos una copia
y luego clasificamos solo esta copia, pero no el arr en sí.
¿bueno?
Pero volviendo ahora a ejemplos más prácticos,
porque rara vez tenemos una matriz como esta
que necesitamos ordenar,
pero normalmente siempre tenemos una variedad de objetos.
Entonces es muy común que tengamos que ordenar eso.
Y entonces digamos ordenados por páginas.
Como puedes imaginar, ahora ordenaremos
toda la matriz de libros por el número de páginas.
Así que books.slice, de nuevo,
Es muy importante llevar una copia aquí.
Entonces aquí simplemente seguimos esa receta.
Entonces a, b, y digamos que queremos uno descendente,
y entonces decimos b,
pero ahora no es sólo b menos a, ¿verdad?
Porque estos son ahora los dos objetos del libro.
Y, por supuesto, no podemos restarlos.
Entonces necesitamos, todavía, un valor numérico aquí.
Y como queremos ordenar por páginas,
hacemos b.páginas
menos a.páginas,
y ahora ordenados por páginas,
y si,
Realmente no puedo ver eso allí.
Cerremos todos estos.
sí.
Entonces comenzamos con "El señor de los anillos".
que tiene 1200 algo,
luego 800,
600,
200,
y luego el más corto es "Harry Potter", con 223 páginas.
Entonces eso funcionó perfectamente.
Hagamos lo contrario, sólo para estar seguros.
Y sí, ahora "Harry Potter" es el primero en la fila,
y sí, ahora está ordenado de forma ascendente.
Entonces hacemos esto todo el tiempo,
y ahora, cuando hago esto dentro del curso de React,
Ya no necesitaré explicar lo que estamos haciendo,
y simplemente seguiré esta receta.