计算对象

时间:2017-09-10 04:24:38

标签: javascript jquery json

我正在进行api调用并根据需要对数据进行排序。唯一的问题是我必须计算存在的日期。

目前我已成功显示了我想要的数据。看起来像这样。

2017-06-09T17:49:49.975+12:00

2017-07-13T08:59:20.023+12:00

2017-05-29T14:17:18.148+12:00

2017-05-21T22:19:07.951+12:00

2017-06-09T13:59:50.464+12:00

2017-06-13T08:18:30.340+12:00

2017-07-27T12:41:17.423+12:00

现在我想知道有多少人有相同的日期。格式就像是,

{ date = 2017-06-09T17:49:49.975+12:00, count = 2, date = 2017-07-13T08:59:20.023+12:00, count = 1... and so on... }

我从这里尝试过几个代码,但对我来说并不适用。

这是我最近尝试过的, https://codepen.io/anon/pen/gxyZXm

4 个答案:

答案 0 :(得分:0)

将内循环保持在循环外部,如下所示

String url="jdbc:mysql://localhost:3306/student?autoReconnect=true&useSSL=false&characterEncoding=utf8&useUnicode=true";

答案 1 :(得分:0)

我已经更新了你的笔有点工作,这是我做的关键事情。

计算每个时间戳的出现次数

   let keys = Object.keys(data)
    let dateCount = keys.reduce((acc, val) => {
      if (data[val].created_at in acc) {
        acc[data[val].created_at]++ 
      } else {
        acc[data[val].created_at] = 1
      }
      return acc
    }, {})

dateCount现在有每个日期出现的次数。从那里,它非常简单。我创建了一个抓取计数的count变量,或者如果它不存在,则将其设置为0.

   $.each(data, function (i, object) {  
  if (!object.last_activity_at) return;

  const count = dateCount[object.last_activity_at] ? dateCount[object.last_activity_at] : 0

 $("body").append("<p>" + object.last_activity_at + " " + count + "</p>");

https://codepen.io/anon/pen/brXLOM?editors=0010

答案 2 :(得分:0)

只需这样做:

var counts = {};
dateArray.forEach(function(x) {
    counts[x] = (counts[x] || 0) + 1;
});
console.log(counts);

答案 3 :(得分:0)

这是我的解决方案版本。

answer

<强> JS:

jQuery.widget.bridge('uibutton', jQuery.ui.button);

//receive calls from typescript code to update the layouts
var AdminLTE = (function() {
 return {
    init: function() {
        jQuery(function(){
            jQuery.AdminLTE.layout.activate();
            jQuery.AdminLTE.layout.fix();
            jQuery.AdminLTE.layout.fixSidebar();
      });
   }
  }
})(AdminLTE||{});