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

对数组对象中的多个字段进行排序

对数组对象中的多个字段进行排序

温温酱 2023-07-06 16:53:16
我有这样的数组 obj:[{ A: '24/12/2020', J: 54106, }, { A: '10/dd/2020', J: 54103 }, { A: 'mm/29/2020', J: 54103 }]我想先对 J 字段进行排序,然后对 A 字段进行排序..但是排序时遇到问题,我想要这样的结果:[ { A: '10/dd/2020', J: 54103 }, { A: 'mm/29/2020', J: 54103 }, { A: '24/12/2020', J: 54106, }]但数据响应是:[{ A: 'mm/29/2020', J: 54103 }, { A: '10/dd/2020', J: 54103 }, { A: '24/12/2020', J: 54106, }]我的代码在这里:result.sort(function (a, b) {   return parseFloat(a.J) - parseFloat(b.J) || (a.A) - (b.A); });我认为它需要从数字到文本排序,但事实并非如此
查看完整描述

1 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

只需编写一个比较函数即可对其进行排序。首先比较J字段,然后比较A字段。


const data = [

  { A: '24/12/2020', J: 54106 },

  { A: '10/dd/2020', J: 54103 },

  { A: 'mm/29/2020', J: 54103 },

];


const cmp = (x, y) => {

  if (x.J === y.J) {

    return x.A.localeCompare(y.A);

  }

  return x.J > y.J ? 1 : -1;

};

const ret = data.sort(cmp);

console.log(ret);


查看完整回答
反对 回复 2023-07-06
  • 1 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信