慕斯709654
2022-12-08 15:33:43
我有這個數組,我想對它進行ticketid明智的排序,這是一個數字。下面是我正在嘗試的代碼 console.log(this.tableData); var filtered_tableData = this.tableData.sort((a, b)=> a.ticketid- b.ticketid) console.log(filtered_tableData);但它沒有按預期排序。這是我的數組:編輯 1嘗試此代碼后,我的結果數組仍然保持不變 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);請注意this.tableData,filtered_tableDataconsole.log 中的結果相同。見下圖
3 回答

Helenr
TA貢獻1780條經驗 獲得超4個贊
更改排序回調以指定降序,并且不需要新的引用變量(filtered_tableData),因為排序作用于原始引用tableData
const tableData = [{ ticketid: 24}, { ticketid: 12 }, { ticketid: 90 }]
tableData.sort((a, b) => a.ticketid > b.ticketid ? -1 : 1)
console.log(tableData)

萬千封印
TA貢獻1891條經驗 獲得超3個贊
降序排序應該是 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);

慕森卡
TA貢獻1806條經驗 獲得超8個贊
您是否嘗試過以下變體:
sort((a, b)=> b.ticketid - a.ticketid)
sort((b, a)=> b.ticketid - a.ticketid)
sort((b, a)=> a.ticketid - b.ticketid)
我的背景是 C#,所以它只是在黑暗中拍攝,但認為它可能會有所幫助。
添加回答
舉報
0/150
提交
取消