我已经在这里阅读了所有相关的问题,但似乎没有什么对我有用。我正在尝试从.json文件中获取信息,并按最近的日期对其进行排序,然后显示与该事件相关的所有信息。
events.json
[
{
"title":"Event 1",
"start": "2014-12-06T09:00:00"
},{
"title":"Event 2",
"start": "2014-12-11T09:00:00"
},{
"title":"Event 3",
"start": "2014-12-13T10:00:00"
}
]
的jQuery
$.getJSON( "events/events.json", function(data){
var array = $.map(data, function (item, index) {
console.log([item.title, item.start]);
});
});
而不是像我预期的那样,在控制台中显示Array [3](然后是事件,开始日期),它显示了我
["Event 1", "2014-12-06T09:00:00"]
["Event 2", "2014-12-11T09:00:00"]
["Event 3", "2014-12-13T10:00:00"]
我哪里错了?
编辑:感谢目前为止提供的所有帮助,但我想我对自己所追求的内容并不十分清楚。我想要显示数据Array[3]
{"Event 1", "2014-12-06T09:00:00"}
{"Event 2", "2014-12-11T09:00:00"}
{"Event 2", "2014-12-13T10:00:00"}
这样我就可以按日期对数组进行排序,如果它们都在子数组中,或者它们自己的数组,我就无法将它们相互排序(或者如果我可以,我不知道如何,也没有知道你可以!)
答案 0 :(得分:1)
jQuery map函数有两个参数。索引和项目。指数排在第一位。
你想要一个数组数组。每个内部数组都有两个值。
所以写
$.getJSON( "events/events.json", function(data){
var vals = [];
var array = $.map(data, function (index, item) {
vals.push([item.title, item.start]);
});
console.log(vals);
});
请参阅here
答案 1 :(得分:1)
如果我理解得很好,你只想显示一个由3个元组组成的数组,而不是三个数组。
var parentArray = [];
$.getJSON( "events/events.json", function(data){
$.map(data, function (item, index) {
parentArray.push( { 'title': item.title, 'start': item.start } );
});
});
console.log(parentArray);
您的结果将是:
[
{ 'title': 'Event 1', 'start': '2014-12-06T09:00:00' },
{ 'title': 'Event 2', 'start': '2014-12-11T09:00:00' },
{ 'title': 'Event 3', 'start': '2014-12-13T10:00:00' }
]
答案 2 :(得分:0)
使用underscore sortBy并执行类似
的操作$.getJSON( "events/events.json", function(data){
var now = new Date();
var sortedArray = _.sortBy(data, function (item) {
return CALCULATEDIFFBETWEENDATES(now,item.start);
});
});