Js 给JSON对象排序

本文介绍了如何在JavaScript中对JSON对象进行排序,当遇到需要对键值对进行排序的业务场景时,可以通过将对象转换为Map,再排序并转回对象。示例中展示了如何对键值对按特定字段排序,并提供了Map到数组和对象的转换方法。此外,还提及了Map到Map的转换。这些技巧对于处理和排序JSON数据十分实用。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值