将对象数组转换为对象数组(js,d3)

I have an array of objects data with the fields donor:, recipient:, purpose:, net:

我需要将数据格式化为如下所示:(这将是较大数组中的一项)

{ 
  donor: "value"
  recipients: [
    {
      recipient: "value"
      purposes: [
        { donor: "v", recipient: "v", purpose: "v", net: "v" },
        { donor: "v", recipient: "v", purpose: "v", net: "v" },
        etc.
      ]
    }
  ]
}

因此,它将是一个对象数组,其中每个对象都有另一个将容纳更多对象(目的)的数组(收件人)。

现在,我拥有的是:

testing = Array.from(d3.group(data, d => d.donor, d => d.recipient), 
        ([ donor, recipients ]) => ({ donor: donor, recipients })); 

这给了我

{ 
  donor: "value"
  recipients: {
    (Map) recipientValue => (Array) [ donor: "v", recipient: "v", purpose: "v", net: "v" ],
    (Map) recipientValue => (Array) [ donor: "v", recipient: "v", purpose: "v", net: "v" ],
    etc.
  }
}

因此,我需要将Map改为数组。 我...不知道该怎么做。每当我尝试更改已经在使用的“测试”设置中的“收件人”时,都会遇到各种错误。它不会让我在现有的组或数组中使用另一个组或Array。,但我不知道该如何尝试。