按特定值对json对象进行排序 [英] Sorting json objects by specific value

查看:113
本文介绍了按特定值对json对象进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将从Laravel中的控制器向脚本文件发送已经按计数排序的数据.我要发送的Json数据如下所示:

I am sending data that I have already sorted by number of counts, from my controller in Laravel to my script file. Json data that I am sending looks like this:

{"5":{"title":"Coop post title","summary":"dbsbsb","count":5},
 "7":{"title":"Example article","summary":"fdsbdfsbsffd","count":5},
 "6":{"title":"Coop's post","summary":"sdbadbb","count":3},
 "0":{"title":"sdvsdv","summary":"dsvsdv","count":2},
 "4":{"title":"sdvsdv","summary":"dsvsdv","count":1}}

但是当我在脚本文件中解析这样的json数据时,数据又变得随机了:

But when I parse json data like this in my script file data gets random again:

var cleanData = $.parseJSON(data);
        console.log(cleanData);

然后进入类似以下的控制台数据:

And then I get in console data that looks like this:

Object {0: Object, 4: Object, 5: Object, 6: Object, 7: Object}
  0:Object
    count:2
    summary:"dsvsdv"
    title:"sdvsdv"
    __proto__:Object
  4:Object
    count:1
    summary: "dsvsdv"
    title: "sdvsdv"
    __proto__:Object
  5:Object
    count:5
    summary: "dbsbsb"
    title: "Coop post title"
    __proto__: Object
  6:Object
    count:3
    summary: "sdbadbb"
    title: "Coop's post"
    __proto__: Object
  7:Object
    count:5
    summary: "fdsbdfsbsffd"
    title: "Example article"
    __proto__: Object

推荐答案

您可以使用 lodash#sortBy lodash#sortBy :

You can sort using lodash#sortBy:

_.sortBy(collection, [iteratees=[_.identity]])

创建一个元素数组,并按照在每个迭代器中在collection(Array | Object)中运行每个元素的结果,以升序排序.此方法执行稳定的排序,即保留相等元素的原始排序顺序.迭代对象使用一个参数调用:(值).

Creates an array of elements, sorted in ascending order by the results of running each element in a collection (Array|Object) thru each iteratee. This method performs a stable sort, that is, it preserves the original sort order of equal elements. The iteratees are invoked with one argument: (value).

var cleanData = {"5":{"title":"Coop post title","summary":"dbsbsb","count":5},"7":{"title":"Example article","summary":"fdsbdfsbsffd","count":5},"6":{"title":"Coop's post","summary":"sdbadbb","count":3}, "0":{"title":"sdvsdv","summary":"dsvsdv","count":2}, "4":{"title":"sdvsdv","summary":"dsvsdv","count":1}};

cleanData = _.sortBy(cleanData, ['count']);
console.log(cleanData);

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.13.1/lodash.min.js"></script>

这篇关于按特定值对json对象进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆