rob*_*999 4 javascript sorting
我有一个 JS 对象,如下所示:
var obj = {"00:11:22:33:44:55" : "AddressB", "66:77:88:99:AA:BB" : "AddressA", "55:44:33:22:11:00" : "AddressC", "AA:BB:CC:DD:EE:FF" : "AddressD"};
Run Code Online (Sandbox Code Playgroud)
如下代码通过key按字母顺序排序:
sorted = Object.keys(obj)
.sort()
.reduce(function (accSort, keySort)
{
accSort[keySort] = obj[keySort];
return accSort;
}, {});
console.log(sorted);
Run Code Online (Sandbox Code Playgroud)
产生输出:
{“00:11:22:33:44:55”:“地址B”,“55:44:33:22:11:00”:“地址C”,“66:77:88:99:AA:BB” :“地址A”,“AA:BB:CC:DD:EE:FF”:“地址D”}
如何按值按字母顺序对对象进行排序,以便输出:
{“66:77:88:99:AA:BB”:“地址A”,“00:11:22:33:44:55”:“地址B”,“55:44:33:22:11:00” :“地址C”,“AA:BB:CC:DD:EE:FF”:“地址D”}
您需要先按keys它们排序values,然后使用.reduce来创建生成的有序对象:
const obj = {
"00:11:22:33:44:55": "AddressB",
"66:77:88:99:AA:BB": "AddressA",
"55:44:33:22:11:00": "AddressC",
"AA:BB:CC:DD:EE:FF": "AddressD"
};
const sorted = Object.keys(obj).sort((a,b) => obj[a].localeCompare(obj[b]))
.reduce((acc,key) => { acc[key] = obj[key]; return acc; }, {});
console.log(sorted);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |