Javascript 使用Lodash和矩从单个日期开始的天/小时分组数组

Javascript 使用Lodash和矩从单个日期开始的天/小时分组数组,javascript,node.js,momentjs,lodash,Javascript,Node.js,Momentjs,Lodash,我正在尝试变换我的数组,以便在渲染视图时轻松使用它 我现在有这个示例代码 let arr = [ { date: d.setDate(d.getDate() - 1), name: "john", country: "AU", text: "Hey" }, { date: d.setDate(d.getDate() - 1), name: "jake", cou

我正在尝试变换我的数组,以便在渲染视图时轻松使用它

我现在有这个示例代码

let arr = [
    {
        date: d.setDate(d.getDate() - 1),
        name: "john",
        country: "AU",
        text: "Hey"
    },
    {
        date: d.setDate(d.getDate() - 1),
        name: "jake",
        country: "US",
        text: "Hey"
    },
    {
        date:d.setDate(d.getDate() - 3),
        name: "jeff",
        country: "US",
        text: "Hey"
    },
    {
        date:d.setDate(d.getDate() - 5),
        name: "jared",
        country: "US",
        text: "Hey"
    },
    {
        date:d.setDate(d.getDate() - 2),
        name: "jane",
        country: "UK",
        text: "Hey"
    }
]

let hours = _.groupBy(arr, (result) => moment(result['date']).startOf('hour').format("LT"));
let day = _.groupBy(arr, (result) => moment(result['date']).startOf('day').format("MMM Do YY"));


console.log(day)
我想要的是按小时对数据进行分组,这是从单个“日期”字符串中按天分组的(我可以通过u.groupby函数单独进行分组,但我希望它输出一个组合数组)

所需的输出应如下所示:

{
    'Apr 15th 19': [
        {'4 pm':[
            {
                date: 1555318593445,
                name: 'ahmed',
                country: 'AU',
                text: 'Hey'
            }
        ]
    ]
}....
使用
\uux.flow()
创建一个按天分组的函数,然后映射每天的值,并按小时分组:

const{flow,groupBy,mapValues}=_
常数fn=流量(
arr=>groupBy(arr,v=>time(v.date).startOf('day').format(“MMM-Do-YY”),
groups=>mapValues(groups,g=>
时刻(v.date)。开始时间(“小时”)。格式(“LT”)
))
)
const arr=[{“日期”:1555318593445,“姓名”:“约翰”,“国家”:“AU”,“文本”:“嘿”},{“日期”:155531859300,“姓名”:“杰克”,“国家”:“美国”,“文本”:“嘿”},{“日期”:1555316593445,“姓名”:“杰夫”,“国家”:“美国”,“文本”:“嘿”{“日期”:1555316593345,“姓名”:“杰瑞德”,“国家”:“美国”,“文本”:“嘿”},{“日期”:155531659400,“姓名”:“简”,“国家”:“英国”,“文本”:“嘿”]
常数结果=fn(arr)
console.log(结果)


为了我自己的理解,你能解释一些事情吗?比如:流与链有何不同?为什么mapvalues是第二步?我尝试在链函数中使用2个groupBy,但没有得到结果…我只是想自己解决任何问题。任何解释都很感谢!还有一个问题,我怎么做d我将按照日期/时间等对整个数组(外部=日期,内部=时间)进行排序(最新日期最早,内部=上次最早)?按日期时间对原始数组进行排序,然后对项目进行分组。原始排序顺序将保留。