【发布时间】:2017-04-11 05:29:50
【问题描述】:
我有一个数组,用于在查看/查看时收集图像的统计信息。读取数组时,它会显示捕获的信息,例如用户查看的日期,以及特定用户的_id(由Meteor.user()._id; 生成)。如下图所示:
{viewedDate: "Sat Apr 08 2017 23:00:47", viewedBy: "udEnfEmy5DSBvDsSy"}
{viewedDate: "Sat Apr 08 2017 23:01:17", viewedBy: "udEnfEmy5DSBvDsSy"}
{viewedDate: "Sat Apr 08 2017 23:01:27", viewedBy: "udEnfEmy5DSBvDsSy"}
{viewedDate: "Sat Apr 08 2017 23:02:37", viewedBy: "udEnfEmy5DSBvDsSy"}
您会注意到viewedBy 字段中有重复项。如何避免 viewedBy 字段中的重复项?
在我当前的代码下面找到:
var viewStatistics = buyList.find({_id:"kegqdvFHFoQptvJXn"});
var currentUserID = Meteor.user()._id;
viewStatistics.forEach(function(itemName){
viewStatisticsArray = [,...itemName.viewStatisticsArray];
if (viewStatisticsArray.indexOf(itemName)== -1) viewStatisticsArray.push({viewedDate: Date(), viewedBy: Meteor.user()._id });
});
在尝试避免以viewedBy 输入重复项的尝试失败时,我还尝试了下面的代码,该代码在逻辑上很有意义,但未能获得预期的效果:
if (viewStatisticsArray.indexOf(itemName.viewedBy)== -1) viewStatisticsArray.push({viewedDate: Date(), viewedBy: Meteor.user()._id });
非常感谢任何帮助!
【问题讨论】:
-
为什么不直接将“udEnfEmy5DSBvDsSy”保存在变量中,然后将
viewedBy字段设置为变量?
标签: javascript arrays meteor push