Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript减少时间戳上的数组_Javascript_Arrays_Reduce - Fatal编程技术网

JavaScript减少时间戳上的数组

JavaScript减少时间戳上的数组,javascript,arrays,reduce,Javascript,Arrays,Reduce,我试图根据时间戳减少此数组: Var Data = [{"Group":"OPS","Date":"2017-04-18T00:00:00.000Z","Count":1},{"Group":"BOE","Date":"2017-04-19T00:00:00.000Z","Count":1},{"Group":"EDW","Date":"2017-04-21T00:00:00.000Z","Count":1},{"Group":"SUPPORT","Date":"2017-04-17T00:00

我试图根据时间戳减少此数组:

Var Data = [{"Group":"OPS","Date":"2017-04-18T00:00:00.000Z","Count":1},{"Group":"BOE","Date":"2017-04-19T00:00:00.000Z","Count":1},{"Group":"EDW","Date":"2017-04-21T00:00:00.000Z","Count":1},{"Group":"SUPPORT","Date":"2017-04-17T00:00:00.000Z","Count":1},{"Group":"EDWEXTRACTS","Date":"2017-04-17T00:00:00.000Z","Count":1},{"Group":"EDWEXTRACTS","Date":"2017-04-18T00:00:00.000Z","Count":1},{"Group":"SAFTT","Date":"2017-04-17T00:00:00.000Z","Count":1},{"Group":"SAFTT","Date":"2017-04-18T00:00:00.000Z","Count":2},{"Group":"SAFTT","Date":"2017-04-21T00:00:00.000Z","Count":1},{"Group":"OPS","Date":"2017-04-17T00:00:00.000Z","Count":1},{"Group":"VIEW","Date":"2017-04-17T00:00:00.000Z","Count":1},{"Group":"VIEW","Date":"2017-04-19T00:00:00.000Z","Count":3}]
我尝试过使用reduce方法,但似乎做了一些错误的事情

var obj = {}

result.reduce(function(r, e) {
  if (!obj[e.Date]) {
    obj[e.Date] = {
      Date: e.Date,
      Assest: []
    }
    r.push(obj[e.Date])
  }
  obj[e.Date].Date.push(e.Group)
  obj[e.Date].Date.push(e.Count)
  return r
}, [])

console.log(JSON.stringify(result, 0, 4))
我期望的结果是:

Var New_Data = [{"Date":"xx/xx/xx", "Assets":[{"group":"XXX"},{"Count":"X"}]},{"Date":"xx/xx/xx","Assets":[{"group":"XXX"},{"Count":"X"}]}]
任何想法我可以实现这一点,任何帮助将是伟大的。
谢谢=)

下面的代码就是一个工作示例。有了它,您应该能够将其更改为您的确切规范,如果它们与我实现的不同

var数据=[
{“组”:“操作”,“日期”:“2017-04-18T00:00:00.000Z”,“计数”:1},
{“组”:“BOE”,“日期”:“2017-04-19T00:00:00.000Z”,“计数”:1},
{“组”:“EDW”,“日期”:“2017-04-21T00:00:00.000Z”,“计数”:1},
{“组”:“支持”,“日期”:“2017-04-17T00:00:00.000Z”,“计数”:1},
{“组”:“EDWEXTRACTS”,“日期”:“2017-04-17T00:00:00.000Z”,“计数”:1},
{“组”:“EDWEXTRACTS”,“日期”:“2017-04-18T00:00:00.000Z”,“计数”:1},
{“组”:“SAFTT”,“日期”:“2017-04-17T00:00:00.000Z”,“计数”:1},
{“组”:“SAFTT”,“日期”:“2017-04-18T00:00:00.000Z”,“计数”:2},
{“组”:“SAFTT”,“日期”:“2017-04-21T00:00:00.000Z”,“计数”:1},
{“组”:“操作”,“日期”:“2017-04-17T00:00:00.000Z”,“计数”:1},
{“组”:“视图”,“日期”:“2017-04-17T00:00:00.000Z”,“计数”:1},
{“组”:“视图”,“日期”:“2017-04-19T00:00:00.000Z”,“计数”:3}
];
Data=Data.reduce(函数(r,e){
var date=e.date.match(/(\d+-\d+-\d+/)[0]。替换(/-/g,“/”);
如果(r[日期]==未定义){
r[date]={date:date,资产:[]};
}
r[date].Assets.push({Group:e.Group});
r[date].Assets.push({Count:e.Count});
返回r
}, {});

控制台日志(数据)您需要的是这样的东西

var result = dados.map(function (v) {
    return {
        Date: new Date(v["Date"]),
        Assets: [
            {Group: v['Group']},
            {Count: v['Count']}
        ]
    };
});

或者您需要创建一个组吗?

我希望只保留唯一的日期。我该怎么做?我会更新我的答案。请在发布问题时填写完整。谢谢,很抱歉没有发布完整的问题,这是我第一次完美地完成我的项目,我只是调整了输出以满足我的需要。非常感谢。