我是所有事情Javascript
的新手,所以我正在进行一点node.js
。
我目前正在使用某些第三方APIs
并操纵数据。
我偶然发现underscore
帮助我解决这个问题,因为返回的数据包含多个objects
。
我使用zip
函数将两个单独arrays
的值配对,如下所示。
[ '2016-06-28 18:48', '455102464' ],
[ '2016-06-28 18:53', '234782720' ],
[ '2016-06-28 18:58', '338894848' ],
[ '2016-06-28 19:03', '301309952' ]
在研究zip
时,我也注意到了一个名为groupBy
的函数。我的目标是减少记录数量并将值分组为1天,而不是在同一天记录多个记录。
我试图实施以下但不能利用。
var groups = _.groupBy(valueArr, function() {
return moment().format("YYYY-MM-DD");
});
任何反馈意见都会非常感谢我概述我做错了什么!
答案 0 :(得分:1)
如果输入是一个数组数组(由zip生成),那么groupBy iteratee应该期望一个数组参数。
var arrayOfArrays = [ [ '2016-06-28 18:48', '455102464' ],
[ '2016-06-28 18:53', '234782720' ], // etc
_.groupBy(arrayOfArrays, function(array) {
var dateString = array[0];
// extract the day from date and return that day
var date = moment(dateString, 'YYYY/MM/DD');
return date.format('D');
});
这将产生:
{ 6: [ [ '2016-06-28 18:48', '455102464' ], [ '2016-06-28 18:53', '234782720' ] ],
N: [ pairs with first element date on the Nth day of the month ], etc
您可能实际上想要分组一年中的某一天,而不是一个月中的某一天,但是一旦您有一个常规日期对象,您就应该在路上了。