从一个对象数组中对一个所有者下的目标进行分组

时间:2014-09-08 12:11:26

标签: 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"
  },
  {
    _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和Underscore.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) %>
    <%}%>
  <% }) %>
<% } %>

0 个答案:

没有答案