js对象排序
# 前言
记录一次在项目开发中遇到的情况。后台返回一个排好序的对象作为折线图的数据,按要求根据日期顺序进行展示。首先要清楚一点是 js 对象是无序的,即使后台排好了序,还是会错乱,所以需要在前端渲染前做一遍排序操作。
#
# 排序
- js 对象是没办法直接进行排序的,可以针对对象的某个属性或键值来排序,最后将对应的 value 取出来。
let obj = {
20210601:{date:20210601,name:'a',age:22},
20210604:{date:20210604,name:'b',age:20},
20210602:{date:20210602,name:'c',age:18},
20210603:{date:20210603,name:'d',age:26}
}
let arr = []
// 将key值排序
let sortKeys = Object.keys(obj).sort((a,b)=>{
return obj[a] - obj[b]
})
console.log(sortKeys) // ["20210601", "20210602", "20210603", "20210604"]
// 循环排列好的 key, 组成一个新的数组
for (var index in sortKeys) {
arr.push(obj[sortKeys[index]])
}
console.log(arr)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
上次更新: 2022/09/06, 10:30:04