我有这样一个数组:
[{
id: 1,
amount: 10,
date: '21/01/2017'
},{
id: 1,
amount: 10,
date: '21/01/2017'
},{
id: 1,
amount: 30,
date: '22/01/2017'
},{
id: 2,
amount: 10,
date: '21/01/2017'
},]
Run Code Online (Sandbox Code Playgroud)
我希望这输出像:
{
'21/01/2017': {
1: {
amount: 20
},
2: {
amount: 10
}
},
'22/01/2017': {
1: {
amount: 30
}
}
}
Run Code Online (Sandbox Code Playgroud)
基本上按数据分组,按id嵌套分组,同时汇总相关金额.
到目前为止,我已尝试使用reduce,并查看了lodash函数,但一直没有成功.Reduce使得分组和总和很容易,但我找不到一种优雅的方法来创建第二级.我创建了一个沙箱来演示:
https://codesandbox.io/s/woj9xz6nq5
const dataToConsolidate = [{
id: 1,
amount: 10,
date: '21/01/2017'
}, {
id: 1,
amount: 10,
date: '21/01/2017'
}, {
id: 1,
amount: …Run Code Online (Sandbox Code Playgroud)我有一组业主,他们每个人都有自己的机会.
我有两个类模块,ClmOpportunity有一堆属性,ClmOwner有一个name属性和一个Collection存储ClmOpportunity对象:
Public name As Variant
Private opps As New collection
Public Function addOpportunity(opp As ClmOpportunity)
opp.ID = opps.Count + 1
opps.Add opp, opps.Count + 1
End Function
Run Code Online (Sandbox Code Playgroud)
这些所有者对象也存储在我的主模块中的集合中.当我尝试使用addOpportunity函数时,如下所示:
Dim item As New ClmOpportunity
item.name = "test"
owners.item(overallOwner).addOpportunity (item)
Run Code Online (Sandbox Code Playgroud)
我收到错误:
"对象不支持此属性或方法"
我对VBA很陌生,我不明白为什么会这样,我正在传递一个ClmOpportunity,所以应该没问题吧?
任何帮助将不胜感激!