最近在做项目,后端返回了一个对象,我需要对其进行展示,众所周知对象的属性在 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'
}
*/