在 javascript 中,如何从 json 数据创建嵌套数组或对象?

esd100

这是对之前提出的问题的修改(在 javascript 中,如何从日期字符串“yyyy-mm-dd”或 timeStamp 中提取月份?),@mhodges 很好地解决了这个问题。

由于修改的性质,我认为创建一个新问题是合适的。

我有一个数据库,其中包含某些记录的事件作为 json 对象,每个事件都有自己的 JS 毫秒时间戳和格式为“yyyy-mm-dd”的日期字符串,以及一个分钟条目。

我想将时间戳用作算法的输入,该算法将计算给定月份和年份中输入的日志数量。

我还希望该算法对给定月份和年份中记录的累积分钟数求和。

例如,

log1: {
    Date:"2017-05-24",
    TimeStamp:1495612800,
    Minutes: 15},
log2: {
    Date:"2017-05-19",
    TimeStamp:1495180800,
    Minutes: 45},
log3: {
    Date:"2017-04-24",
    TimeStamp:1493020800,
    Minutes:30},
log4: {
    Date:"2016-08-15",
    TimeStamp:1471248000,
    Minutes:75}

在这个例子中,算法会计算出 2017 年 5 月有两条日志,一条日志在 2017 年 4 月,一条日志在 2016 年 8 月。

该算法还将返回 2017 年 5 月的 60 分钟、2017 年 4 月的 30 分钟和 2016 年 8 月的 75 分钟的总和。

任何有关修改@mhodges 之前提供的解决方案的帮助(请参阅(在 javascript 中,如何从日期字符串“yyyy-mm-dd”或 timeStamp 中提取月份?)),将其放入适当的嵌套输出中,将不胜感激!

我在修改 @mhodges 解决方案以实现它时遇到了麻烦,但设想如下:

{
  "2016":{
    "8": {
      occurrences: 1,
      minutes: 75
    }
  },
  "2017":{
    "4": {
      occurrences: 1,
      minutes: 30
    },
    "5": {
      occurrences: 2,
      minutes: 60
    }
  }
}

谢谢

杰哥

从您的预期输出来看,您可能希望使用日期值而不是时间戳。您可以遍历日志并将每个月的分钟数相加。

它看起来像这样:

var logs = [{
    Date: "2017-05-24",
    TimeStamp: 1495612800,
    Minutes: 15
  },
  {
    Date: "2017-05-19",
    TimeStamp: 1495180800,
    Minutes: 45
  },
  {
    Date: "2017-04-24",
    TimeStamp: 1493020800,
    Minutes: 30
  },
  {
    Date:"2016-08-15",
    TimeStamp:1471248000,
    Minutes:75
  }
];

var result = {};
for (var i = 0; i < logs.length; i++) {
  var year = logs[i].Date.slice(0, 4);
  var month = logs[i].Date.slice(5, 7);
  if (!result[year]) {
    result[year] = {};
  }
  if (!result[year][month]) {
    result[year][month] = {
      occurences: 1,
      minutes: logs[i].Minutes
    }
    continue;
  }
  result[year][month].occurences++;
  result[year][month].minutes += logs[i].Minutes;
}

console.log(result);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从JSON数组对象响应创建嵌套数据表

如何使用Python创建JSON对象的嵌套数组?

如何使用 JavaScript 访问 JSON 数据中嵌套数组中的特定元素?

来自javascript嵌套数组的json对象

JavaScript:创建将嵌套数组中的数据转换为具有多个对象的一个数组的函数

如何使用 JavaScript 解析嵌套数组中的 JSON 值

如何在 React-Native 的屏幕上访问嵌套数组 JSON 数据中的嵌套对象

如何创建嵌套数组JSON?

JSON对象转换中的嵌套数组

如何在嵌套数组中过滤JSON对象数组

在Javascript中创建嵌套数组

Javascript如何过滤嵌套数组数据

如何使用jQuery在JavaScript中循环嵌套数组对象

如何基于嵌套数组中的值返回对象?(Javascript)

如何在ReactJS中以JSON显示嵌套数组数据?

从javascript中的json访问嵌套数组键,值

响应中的JavaScript Body.json()丢失嵌套数组

在 JavaScript 中循环遍历 JSON 嵌套数组

如何过滤深层嵌套数据?-Javascript JSON

如何将JSON中的嵌套数组拆分为Google表格中的表格(使用Javascript?)

数组中包含嵌套数组中值的Javascript列表对象

从 JSON 数组对象获取嵌套数据

创建嵌套数据(JSON或数组)

如何在对象数组的嵌套数组中获取数组对象javascript

如何在javascript或jQuery中解析具有嵌套数组的JSON

如何在Golang中的嵌套JSON对象中解析嵌套数组?

如何 JSON.stringify 对象的嵌套数组

从JavaScript中的对象数组创建嵌套对象

如何使用 PHP 创建嵌套数组 Json?