按条件过滤

时间:2019-01-08 12:59:34

标签: javascript node.js ejs

当我将满足特定条件的消息的作者\用户名添加到名为result的数组中,然后在该数组上调用函数uniq时,我得到的是过滤后的唯一结果数组精细。但是,当我将消息的ID而不是用户名添加到我的数组时,相同的功能根本不会过滤我的新数组。这是两个结果的图像。

将邮件的用户名添加到result数组中,

<% var result = []; %>
<% message.forEach(function(item) { %>
<%   if(currentUser._id.equals(item.sender.id)){ %>
<%     result.push(item.receiver.username);%>              // only change here
<% } %>
<% }); %>
<% console.log("result", result)%>
<% console.log("==============")%>

<% function uniq(a) {%>
<%    return Array.from(new Set(a));%>
<% } %>
<% a=uniq(result) %>
<% console.log("filtered", a)%>

将消息的ID添加到结果数组中,

<% var result = []; %>
<% message.forEach(function(item) { %>
<% if(currentUser._id.equals(item.sender.id)){ %>
<%        result.push(item.id);%>                          // only change here
<% } %>
<% }); %>
<% console.log("result", result)%>
<% console.log("==============")%>

<% function uniq(a) {%>
<%    return Array.from(new Set(a));%>
<% } %>
<% a=uniq(result) %>
<% console.log("filtered", a)%>

Code extract

result [ 5c2f74ef608ab11cfce47efd,
  5c2f74ef608ab11cfce47efd,
  5c3243256e5bc94f4469cb98,
  5c2f74ef608ab11cfce47efd,
  5c2f74ef608ab11cfce47efd,
  5c3251be3cc19f350071c523 ]
==============
filtered [ 5c2f74ef608ab11cfce47efd,
  5c2f74ef608ab11cfce47efd,
  5c3243256e5bc94f4469cb98,
  5c2f74ef608ab11cfce47efd,
  5c2f74ef608ab11cfce47efd,
  5c3251be3cc19f350071c523 ]
result [ 'ann_b', 'ann_b', 'clark', 'ann_b', 'ann_b', 'anna_b' ]
==============
filtered [ 'ann_b', 'clark', 'anna_b' ]

0 个答案:

没有答案