二维数组的排序不起作用

我有这个数组,我想对它进行ticketid明智的排序,这是一个数字。下面是我正在尝试的代码


    console.log(this.tableData);

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

    console.log(filtered_tableData);

但它没有按预期排序。


这是我的数组:

http://img.mukewang.com/63919374000185af13590765.jpg

编辑 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 中的结果相同。


见下图

http://img1.mukewang.com/639193840001439013650766.jpg

慕斯709654
浏览 160回答 3
3回答

Helenr

更改排序回调以指定降序,并且不需要新的引用变量(filtered_tableData),因为排序作用于原始引用tableDataconst tableData = [{ ticketid: 24}, { ticketid: 12 }, { ticketid: 90 }]tableData.sort((a, b) => a.ticketid > b.ticketid ? -1 : 1)console.log(tableData)

万千封印

降序排序应该是 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);

慕森卡

您是否尝试过以下变体:sort((a, b)=> b.ticketid - a.ticketid)sort((b, a)=> b.ticketid - a.ticketid)sort((b, a)=> a.ticketid - b.ticketid)我的背景是 C#,所以它只是在黑暗中拍摄,但认为它可能会有所帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript