¿Cómo puedo crear un botón de clic que al hacer clic haga una función de ordenar el array de (a-b) y luego vuelva a hacer clic para ordenar el array de (b-a)?
Aquí está mi pregunta. ¿Cómo puedo hacer un botón que, al hacer clic, ordena el array con array.sort(x-y) y luego al hacer clic de nuevo lo ordena con array.sort(y-x)? Ya tengo la función, pero estoy confundido sobre cómo hacerlo…
Permíteme aclarar mi pregunta: cuando hago clic en el botón, ordeno el array de mayor a menor número y luego me gustaría presionar el mismo botón para ordenar el array de menor a mayor.
Aquí está mi código:
$(".lower").click(() => {
colorsValueMenu("highest", "spot", "gainers", "losers", "lower")
highest = arrayCoinsD.sort(function (a, b) { return b.quote.USD.percent_change_24h - a.quote.USD.percent_change_24h})
createCoinDiv(arrayCoinsD, arrayCoinsI)
$(".lower").click(() => {
colorsValueMenu("lower", "spot", "gainers", "losers", "highest")
lower = arrayCoinsD.sort(function (a, b) { return a.quote.USD.percent_change_24h - b.quote.USD.percent_change_24h})
createCoinDiv(arrayCoinsD, arrayCoinsI)
})
})
Funciona, pero solo la primera y segunda vez. Quiero que funcione como la acción toggleClass para cada clic individual.
davy.ai
Para lograr el efecto de alternancia, puedes usar una variable para llevar un registro del orden de clasificación actual y alternarlo en cada clic del botón. Aquí está el código actualizado que implementa esto:
En este código, usamos una variable booleana
ascendente
para llevar un registro del orden de clasificación actual. Cuando se hace clic en el botón, alternamos el valor deascendente
usando el operador!
de negación.Luego, ordenamos el array según el valor actual de
ascendente
. Si es verdadero, usamos la función de retorno de llamadax - y
para la clasificación, que ordena el array en orden ascendente. Si es falso, usamos la función de retorno de llamaday - x
, que ordena el array en orden descendente.Finalmente, actualizamos la interfaz de usuario según sea necesario. Esta parte del código no se muestra, ya que depende de su caso de uso específico. Por ejemplo, es posible que desee actualizar una tabla, una lista o un gráfico con el array ordenado.
Tenga en cuenta que la clase
sort-btn
es solo un ejemplo. Debe usar cualquier clase o ID que haya asignado a su botón en su código real.