javascript - İki boyutlu dizinin sıralanması çalışmıyor


Bu bir dizim var, bunu ticketid sırasına göre, ki bu bir sayı, sıralamak istiyorum. Aşağıda denediğim kod var

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

Ama beklenildiği gibi sıralanmıyor.

İşte benim dizim:

Düzenleme 1

Bu kodu denedikten sonra, sonuç dizim hâlâ aynı kaldı

    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);

Lütfen this.tableData ve filtered_tableData sonuçlarının console.log'ta aynı olduğunu unutmayın.

Aşağıdaki resmi gör

Cevap #1

Sıralama geri çağırmasını azalan bir sırayı belirtmek için değiştirin ve yeni bir referans değişkenine (filtered_tableData) ihtiyacınız yok çünkü sıralama orijinal referans tableData üzerinde uygulanır

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

Cevap #2

azalan sıralama b.ticketid - a.ticketid olmalıdır:

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