按值字母顺序对 Javascript 对象进行排序

2024-03-13

我有一个 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"};

代码如下,通过key按字母顺序排序:

sorted = Object.keys(obj)
.sort()
.reduce(function (accSort, keySort) 
{
    accSort[keySort] = obj[keySort];
    return accSort;
}, {});

console.log(sorted);

产生输出:

{“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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按值字母顺序对 Javascript 对象进行排序 的相关文章

随机推荐