Búsqueda de sitios web

javascript - Ordenamiento de un arreglo bidimensional no funciona


Tengo este arreglo, quiero ordenarlo por ticketid, que es un número. A continuación está el código que estoy intentando

    console.log(this.tableData);
    var filtered_tableData = this.tableData.sort((a, b)=> a.ticketid- b.ticketid)
    console.log(filtered_tableData);

Pero no se está ordenando como se esperaba.

Aquí está mi arreglo:

Editar 1

Después de probar este código, mi arreglo de resultados sigue siendo el mismo

    console.log(this.tableData);
    var filtered_tableData = this.tableData.sort((a,b) => (a.ticketid > b.ticketid) ? 1 : ((b.ticketid > a.ticketid) ? -1 : 0)); 
    console.log(filtered_tableData);

Tenga en cuenta que this.tableData y filtered_tableData tienen el mismo resultado en console.log.

Ver imagen abajo

Respuesta #1

Cambia la función de devolución de llamada de ordenación para especificar un orden descendente, y no necesitas una nueva variable de referencia (filtered_tableData) porque la ordenación actúa sobre la referencia original tableData

const tableData = [{ ticketid: 24}, { ticketid: 12 }, { ticketid: 90 }]
tableData.sort((a, b) => a.ticketid > b.ticketid ? -1 : 1)
console.log(tableData)

Respuesta #2

la ordenación descendente debería ser b.ticketid - a.ticketid:

let ar = [{ticketid:3},{ticketid:5},{ticketid:2}]
    var filtered_tableData = ar.sort((a, b)=> b.ticketid - a.ticketid)
    console.log(filtered_tableData);