当我将满足特定条件的消息的作者\用户名添加到名为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)%>
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' ]