Javascript 整合下划线和groupBy

Javascript integrating underscore and groupBy

我对所有事情都是新手 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");
});

任何反馈都将不胜感激,以概述我做错了什么!

如果输入是一个数组数组(由 zip 生成),则 groupBy 迭代器应该期望一个数组参数。

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

您可能实际上想要按年中的某天而不是每月中的某天进行分组,但是一旦您有了可用的常规日期对象,您就应该开始了。