小编Ste*_*ven的帖子

ES6嵌套分组与总和

我有这样一个数组:

[{
   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)

javascript ecmascript-6 lodash

4
推荐指数
1
解决办法
349
查看次数

VBA将对象传递到另一个对象集合中

我有一组业主,他们每个人都有自己的机会.

我有两个类模块,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,所以应该没问题吧?

任何帮助将不胜感激!

collections excel vba module class

1
推荐指数
1
解决办法
1835
查看次数

标签 统计

class ×1

collections ×1

ecmascript-6 ×1

excel ×1

javascript ×1

lodash ×1

module ×1

vba ×1