我需要以更好的格式转换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"}
];
答案 0 :(得分:1)
由于myJson是一个数组,你可以像这样使用Array.sort函数:
myJson.sort(function(a, b) {
return a.month > b.month;
});
这将按您希望的顺序返回数组。
但请注意,这是一个字符串排序而不是数字排序。为了获得更好的结果,我建议你在#34; - "上使用String.split月份值。然后单独解析月份和年份值。从那里你可以按照你喜欢的年份和月份进行数字排序。