js对象排序

        首先明确一点,js并不能直接对对象进行排序。常规的思路是先将对象转化为数组,对数组进行排序,然后将数组转化为对象。 用到的主要是 arr.sort( callback) 方法,没有参数的时候默认是按照字母和升序进行排序。

        对象排序常见的两种场景分别是键排序,或是值排序。键排序比较简单,我们把思路简化一下,直接将键提取出来,遍历排序后的数组生成新的对象。

键排序:

let obj = {
	d: "value2",
	a: "value1",
	c: "value3"
}

let arr = Object.keys(obj)
let rstObj = {}
for(var key of arr.sort()){
	rstObj[key] = obj[key]
}
console.log( rstObj)

输出结果为:  { a: 'value1', c: 'value3', d: 'value2' }    排序成功。

        值排序要麻烦一点,需要将对象和数组相互转化。可以使用 Object对象提供的两个方法,Object.entries() 和 Object.fromEntries()实现将对象变为数组和将数组变为对象。

值排序:

let obj = {
	a1: 32,
	a2: 18,
	a3: 4
}

let arr = Object.entries( obj)

arr.sort( (a,b)=>{
	return a[1] - b[1]
})

let rstObj = Object.fromEntries( arr)
console.log( rstObj)

输出结果为: { a3: 4, a2: 18, a1: 32 }     排序成功。

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

loggers_kid

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值