按属性排序JSON数组的通用方式 [英] Generic way of sorting JSON array by attribute

查看:321
本文介绍了按属性排序JSON数组的通用方式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我发现了如何排序在<一个JSON数组href=\"http://www.devcurry.com/2010/05/sorting-json-array.html\">http://www.devcurry.com/2010/05/sorting-json-array.html

现在我想在一个通用的方式进行排序;所以,我的排序函数知道哪个属性排序依据。

Now I want to sort it in a generic way; so that my sorting function knows which attribute to sort by.

例如,如果我的数组是

[
  {
    "name": "John",
    "age": "16"
  },
  {
    "name": "Charles",
    "age": "26"
  }
]

我想避免编写不同的,如果案件知道我是否应该通过名称或年龄排序。我只是想传递一个参数'名'或'年龄'和我的排序功能应该知道该怎么做。

I want to avoid writing different if cases to know if I should sort by name or age. I just want to pass a parameter 'name' or 'age' and my sorting function should know what to do.

感谢。

推荐答案

有点像:

function predicatBy(prop){
   return function(a,b){
      if( a[prop] > b[prop]){
          return 1;
      }else if( a[prop] < b[prop] ){
          return -1;
      }
      return 0;
   }
}

//Usage
yourArray.sort( predicatBy("age") );
yourArray.sort( predicatBy("name") );

这篇关于按属性排序JSON数组的通用方式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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