Javascript 将对象数组中的一个所有者下的目标分组

Javascript 将对象数组中的一个所有者下的目标分组,javascript,node.js,mongodb,sails.js,ejs,Javascript,Node.js,Mongodb,Sails.js,Ejs,我正在使用Node.js设计一个仪表板,该仪表板可以测量人的目标。我目前已经设置了后端,可以添加新的目标 因此,MongoDB中的一些示例数据: var = targets = [ { _id: ObjectId("53e0d2e340db30cb151413d4"), owner: "Some Guy", objective: "Make coffee", metric: "Availability", rag: "Amber" }, {

我正在使用Node.js设计一个仪表板,该仪表板可以测量人的目标。我目前已经设置了后端,可以添加新的目标

因此,MongoDB中的一些示例数据:

var = targets = [
  {
    _id: ObjectId("53e0d2e340db30cb151413d4"),
    owner: "Some Guy",
    objective: "Make coffee",
    metric: "Availability",
    rag: "Amber"
  },
  {
    _id: ObjectId("53e0d2e340db30cb151413d4"),
    owner: "Someone Else",
    objective: "Answer phones",
    metric: "Blah",
    rag: "Green"
  },
  {
    _id: ObjectId("53e0d2e340db30cb151413d4"),
    owner: "Some Guy",
    objective: "Clean desks",
    metric: "Wah",
    rag: "Red"
  }
];
要删除重复所有者以显示选项卡列表,我使用EJS和underline.js编写了以下代码:

<% _.each(targets, function(target) { %>
  <% if ((arr.indexOf(target.owner)) === -1) { %>
    <% arr.push(target.owner) %>
  <% } %>
<% }) %>
它将生成以下将数据发布到具有每个所有者选项卡的旋转木马。在选项卡中,有一个选项可以在该所有者的多个目标之间单击

每个所有者都可以有多个目标,因此当选择他们的选项卡时,我可以在旋转木马中滑动。我不明白的是,我将如何从特定的所有者那里获取每个目标,并将所有目标添加到他们的选项卡下,等等

我的想法是为每个所有者创建一个新数组,然后循环所有目标,将特定目标添加到正确的所有者数组中。所以我已经在这方面做了一个开始,但我不确定如何推进到特定阵列,或者这是否是正确的方式

<% _.each(arr, function(owner, i) { %>
  <% this['targets_' + i] = [] %>
  <% _.each(targets, function(target) { %>
    <%if (target.owner === owner) {%>
      <%(['targets_' + i]).push(target.id)%>
      <% console.log(target.id) %>
    <%}%>
  <% }) %>
<% } %>

现在修好了。事实证明我想得太多了。如果你认为这个问题和你的解决方案对其他人很有价值,那么你可以发布自己的答案并接受它。否则,您可以删除该问题。