众所周知,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]})

此时会获得一个新的数组,你打印出来发现,格式变了

java实现json如何排序 json排序 js_javascript

 变成这样了。但我们想要的还是一开始那样的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]]));