为了账号安全,请及时绑定邮箱和手机立即绑定

二维数组的排序不起作用

二维数组的排序不起作用

慕斯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)


查看完整回答
反对 回复 2022-12-08
?
万千封印

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


查看完整回答
反对 回复 2022-12-08
?
慕森卡

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#,所以它只是在黑暗中拍摄,但认为它可能会有所帮助。


查看完整回答
反对 回复 2022-12-08
  • 3 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号