使用JavaScript将事件拆分为月份

使用JavaScript将事件拆分为月份,javascript,json,mongodb,Javascript,Json,Mongodb,我有一个mongodb集合,所有即将到来的和过去的事件都在其中。然而,当我获取数据时,它会做它应该做的事情,并以数组的形式返回查询,然后我转向JSON(发送到我的html iphone应用程序) 我想知道的是,在我运行mongodb查询之后,如何分割日期并将每个月的事件分组到不同的JSON中 下面是一个JSON示例 { "date": "01/11/2013", "event": "Event Name", "desc": "Sample DESC." },{ "dat

我有一个mongodb集合,所有即将到来的和过去的事件都在其中。然而,当我获取数据时,它会做它应该做的事情,并以数组的形式返回查询,然后我转向JSON(发送到我的html iphone应用程序)

我想知道的是,在我运行mongodb查询之后,如何分割日期并将每个月的事件分组到不同的JSON中

下面是一个JSON示例

{
   "date": "01/11/2013",
   "event": "Event Name",
   "desc": "Sample DESC." 
},{
   "date": "07/12/2013",
   "event": "Event Name",
   "desc": "Sample DESC." 
},
基本上,我想把列表显示为

November
1: event title
December
7: event title
我想如果我把日期分开,但后来我意识到这根本没用,只会把日期分开

我并不是要求别人编写代码,我只是用它来说明如何将日期分组到不同的json字符串中

应该是这样的

<div>MONTH</div>
<div>EVENT</div>
月份
事件
或者如果有多个事件

 <div>MONTH</div>
    <div>EVENT</div>
    <div>EVENT</div>
    <div>EVENT</div>
    <div>EVENT</div>
    <div>EVENT</div>
月份
事件
事件
事件
事件
事件
这就是我通常在Javascript中编辑JSON字符串的方式

var newsreponse = JSON.parse(xmlhttp.responseText);


    for (var i = 0, len = newsreponse.length; i < len; ++i) {
     var news = newsreponse[i];
     if(i % 2 == 0){
       cssclass = "even";
     }
     else
     {
       cssclass = "odd";
     }

      //  alert(news.featured_image);
     document.getElementById("activecontent").innerHTML += "<div class='news " + cssclass + "'><div class='newstitle'><div class='newstitlecolor'>" + news.post_title + "</div></div><div class='base' style='background: url('" + news.featured_image + "');'><img src='" + news.featured_image + "' style='width:100%; height:100%;'/></div></div>";
    }
var newsreponse=JSON.parse(xmlhttp.responseText); 对于(变量i=0,len=newsreponse.length;i只需在数组中循环并将值添加到新对象中即可

var raw = [{
   "date": "01/11/2013",
   "event": "Event Name",
   "desc": "Sample DESC." 
},{
   "date": "07/12/2013",
   "event": "Event Name",
   "desc": "Sample DESC." 
}];

var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
var ordered = {};

for( var i = 0, len = raw.length; i < len; i++ ) {
    var entry = raw[i];
    var m = parseInt(entry.date.split("/")[1])-1;
    if( !ordered[months[m]] ) { ordered[months[m]] = []; }
    ordered[months[m]].push( entry );
}
var原始=[{
“日期”:“2013年11月1日”,
“事件”:“事件名称”,
“描述”:“样本描述”
},{
“日期”:“2013年12月7日”,
“事件”:“事件名称”,
“描述”:“样本描述”
}];
风险值月份=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”]
var有序={};
对于(变量i=0,len=raw.length;i

这里有一个

非常抱歉!但我无法理解你想要达到的目标!:(很抱歉,虽然这会把月份和事件放在下面,但我没有办法做for循环来调用每一个,除非我遗漏了什么。因为每个数组都是从月份开始的,也许我的javascript技能不知道如何做,我习惯在做for循环时使用相同的键。你到底是什么意思?你在尝试什么g要完成吗?只需打印这个东西?有很多不同的方法可以实现。这里有一个快速解决方案。无论如何,我可以通过一个简单的循环来实现,因为我想做一些其他的事情,我不知道如何在代码中调用每个键值,可能只是缺乏技巧,我会在我通常做的事情之上发布,然后你可以看到什么我的技能是。很抱歉,你用同样的方法来做,你仍然需要一个对象来保存你有哪些月份和没有哪些月份的引用,但是你可以直接指向dom元素而不是数组项。