按月进行JSON数据存储/重新排序

时间:2015-08-05 13:30:14

标签: javascript json

我需要以更好的格式转换json,比如“expected”JSON对象。目前我有奇怪的无序月份(以月为单位)对象和DOM我无法相应地过滤掉它。我需要完全重新排序......比如2015-01,2015-02,2015-03 ......

Var myJson = [{"month":"2015-03", "name":"sg"},
              {"month":"2015-03", "name":"pi"},
              {"month":"2015-06", "name":"sg"},
              {"month":"2015-06", "name":"pi"},
              {"month":"2015-01", "name":"sg"},
              {"month":"2015-01", "name":"pi"},
              {"month":"2015-02", "name":"sg"},
              {"month":"2015-02", "name":"pi"}
             ];
var expected = [{"month":"2015-01", "name":"sg"},
              {"month":"2015-01", "name":"pi"},
              {"month":"2015-02", "name":"sg"},
              {"month":"2015-02", "name":"pi"},
              {"month":"2015-03", "name":"sg"},
              {"month":"2015-03", "name":"pi"},
              {"month":"2015-06", "name":"sg"},
              {"month":"2015-06", "name":"pi"}
             ];

1 个答案:

答案 0 :(得分:1)

由于myJson是一个数组,你可以像这样使用Array.sort函数:

myJson.sort(function(a, b) {
  return a.month > b.month;
});

这将按您希望的顺序返回数组。

但请注意,这是一个字符串排序而不是数字排序。为了获得更好的结果,我建议你在#34; - "上使用String.split月份值。然后单独解析月份和年份值。从那里你可以按照你喜欢的年份和月份进行数字排序。