通过对象值对json项进行排序

时间:2018-08-24 02:04:19

标签: javascript json sorting

如果我具有下面的JSON,并且我需要遍历数组中的每个对象,并通过num键对它们进行排序,然后吐出名称值,那么我该怎么做呢?我的脑子放屁,不记得了。

  [{
    "name": "bob",
    "num": 16
  },
  {
    "name": "mary",
    "num": 45
  },

  {
    "name": "tyler",
    "num": 3
  },
  {
    "name": "rebecca",
    "num": 70
  },
  {
    "name": "michelle",
    "num": 81
  }]

3 个答案:

答案 0 :(得分:0)

如果要升序排序,可以将内置函数$name与自定义比较器一起使用,然后将/page/context/variable[ let $name := @name return not(/page/actions//*/text()[contains(., $name)]) ] 的结果放入名称数组:

sort

使用map降序。

答案 1 :(得分:0)

您将需要Array.prototype.sort()Array.prototype.map()

lst = []; //your list
function sortnum(a, b) {
    return a.num - b.num;
}
var result = lst.sort(sortnum).map(function (item) { return item.name; });

答案 2 :(得分:0)

据我了解,您的请求可以通过以下方式执行:

[{
    "name": "bob",
    "num": 16
  },
  {
    "name": "mary",
    "num": 45
  },

  {
    "name": "tyler",
    "num": 3
  },
  {
    "name": "rebecca",
    "num": 70
  },
  {
    "name": "michelle",
    "num": 81
  }].sort((a,b)=>a.num-b.num).map(a=>a.name)