JS根据指定顺序,对象进行排序。

最近在做项目,后端返回了一个对象,我需要对其进行展示,众所周知对象的属性在 JS 中没有固定的顺序,所以输出结果的属性顺序可能与输入时不同。

这时候需要对其进行排序。

使用了Object.fromEntries、Object.entries。供君参考~

// 收到的数据
let data = {
  AVR: "-430 -429 -427",
  AVL: "220 221 223 223",
  AVF: "211 209 205",
  I: "433 433 433 432",
  II: "427 425 421 419 416",
  AII: "427 425 421 419 416",
  III: "-6 -8 -12 -13",
  V1: "-114 -116 -115",
  V4: "916 915 917 920",
  V5: "858 858 863 870",
  V6: "448 448 454 462",
  V2: "1619 1619 1",
  V3: "1353 1351 1",
};

// 你定义的顺序
const order = [
  "I",
  "II",
  "III",
  "AVR",
  "AVL",
  "AVF",
  "V1",
  "V2",
  "V3",
  "V4",
  "V5",
  "V6",
  "AII",
];

const sortedData = Object.fromEntries(
  Object.entries(data).sort(
    ([keyA], [keyB]) => order.indexOf(keyA) - order.indexOf(keyB)
  )
);

// 输出的结果按照order中的顺序进行排序
console.log(sortedData);

/*
{
  I: '433 433 433 432',
  II: '427 425 421 419 416',
  III: '-6 -8 -12 -13',
  AVR: '-430 -429 -427',
  AVL: '220 221 223 223',
  AVF: '211 209 205',
  V1: '-114 -116 -115',
  V2: '1619 1619 1',
  V3: '1353 1351 1',
  V4: '916 915 917 920',
  V5: '858 858 863 870',
  V6: '448 448 454 462',
  AII: '427 425 421 419 416'
}
*/

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值