我正在玩javascript中的json对象,想看看是否有人可以帮助我解决问题
我的json文件包含一个包含键(id)的哈希对象列表,值为[ipaddress,timestamp,url]
的数组e.g。
{"output":
{
"1":["10.0.0.1","2012-07-11T11:41:42+01:00","http://myurl.com"],
"2":["10.0.0.1","2012-07-11T11:45:42+01:00","http://myurl2.com"],
"3":["192.168.1.1","2012-07-11T11:41:47+01:00","http://myurl3.com"]
}
}
我想要做的是能够对数组的内容进行排序
例如,我想通过json并为每个ip地址提取最高时间戳
因此上面json的示例输出如下: -
10.0.0.1 - http://myurl2.com
192.168.1.1 - http://myurl3.com
目前我有一个简单的函数来输出div中的原始数据,但我确信我可以更好地处理数组
var displayOutput = function(data){
var container = $("#fragment-1");
var body = “”;
$.each(data.output, function(key, val) {
var arr = val.toString().split(",");
body = body + arr[0]+ ' - ' + arr[1]) + ' - ' + arr[2]
});
container.html(body);
};
答案 0 :(得分:0)
您需要将格式更改为JSON,以便于排序。
也许是一个多维数组?
也许这可能会有所帮助:Sorting an array of JavaScript objects
或者:http://www.devcurry.com/2010/05/sorting-json-array.html
或者:Sorting a JSON object in Javascript
其中一个肯定会导致一个很好的解决方案。需要任何帮助问:)
答案 1 :(得分:0)
您可以使用underscore.js库。例如,您可以使用以下内容对集合进行排序:
_.sortBy(yourData.output, function (elem) {
return new Date(elem[1]).getTime() - new Date().getTime();
});
当然,您需要先将JSON解析为JavaScript对象。