如何改变js对象排序?

用数字型字符串作为key的时候,怎么改变对象的排序呢?

let obj = {

2015: [
    {
        "title": "标题1",
        "sum": "简介1"
    },
    {
        "title": "标题2",
        "sum": "简介2"
    }
],
2016: [
    {
        "title": "标题3",
        "sum": "简介3"
    }
],
2017: [
    {
        "title": "标题4",
        "sum": "简介4"
    }
]

}

key的值是数字型字符串的时候,默认排序永远都是从小到大,我把对象转换成数组再倒序排列变成对象,结果还是从小到大排序。

因为我渲染的列表数据需要从大到小排列?有没有别的方法可以解决呢?

<div class="item">

<strong>2017</strong>
<ul>
    <li>标题4<span>简介4</span></li>
</ul>

</div>

<div class="item">

<strong>2016</strong>
<ul>
    <li>标题3<span>简介3</span></li>
</ul>

</div>

<div class="item">

<strong>2015</strong>
<ul>
    <li>标题1<span>简介1</span></li>
    <li>标题2<span>简介2</span></li>
</ul>

</div>

阅读 9.8k
4 个回答

1.把key读到array中
2.进行排序
3.循环array,按顺序读取值,进行操作
例子

json数据无顺序,不是用来排序的,是用来查询的,他就是一个小的hash表!只有数组才有。不用费劲了!

Object.keys(obj).sort((a,b)=>a-b))
获取到排序后的对象的key在遍历key获取对象值a-b不对就改成b-a试试

你把对象转成数组排序,对象已有默认排序。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题