众所周知,json对象是没有顺序的。只有数组才有排序功能。
但我们遇到的业务场景里面,不仅仅需要对数组排序,也有需要对对象排序的情况。
例如下面这种数据:
let data = {zhangsan: {age: 18, height: 189}, lisi: {age: 18, height: 175}}
此时如果对这种数据排序。
可以这样写:
let data = {zhangsan: {age: 18, height: 189}, lisi: {age: 18, height: 175}}
let map = new Map()for (let k in data) {map.set(k, data[k])}
let arrayObj = Array.from(map)arrayObj.sort((a,b) => {return b[1][lowerName] -a[1][lowerName]})
此时会获得一个新的数组,你打印出来发现,格式变了

变成这样了。但我们想要的还是一开始那样的json格式,那就再把它转回来就好了。
let obj = {}
for (let i in arrayObj) {let k = arrayObj[i][0]let value = arrayObj[i][1]obj[k] = value}
顺便提一句,想要转成map的话,可以如下:
var result = new Map(arrayObj.map(i => [i[0], i[1]]));













