Javascript 如何使用cursor.map函数跳过集合中的第一项

Javascript 如何使用cursor.map函数跳过集合中的第一项,javascript,map,meteor,skip,Javascript,Map,Meteor,Skip,我有以下模板帮助程序,用于输出第一个{{url}和所有{{thumb} 但是,如果{{thumb}}不确定如何在map函数中执行此操作,我想跳过第一项 Template.motionPictures.helpers({ posts: function() { return Posts.find({}, {fields: {thumb: 1, url: 1}}).map(function(post, index) { if (index === 0) { return po

我有以下模板帮助程序,用于输出第一个{{url}和所有{{thumb} 但是,如果{{thumb}}不确定如何在map函数中执行此操作,我想跳过第一项

Template.motionPictures.helpers({
  posts: function() {

  return  Posts.find({}, {fields: {thumb: 1, url: 1}}).map(function(post, index) {
  if (index === 0) {
    return post;
  } else {
    delete post.url;
    return post;
  }
});

}
});
当我在console.log中记录posts数组时,我得到以下结果


这是我所期望的,但我希望数组中的第一个对象只显示它的{{url}而不是{{thumb}。到目前为止,所有的建议都只是全部删除该对象,或者根本不删除。

您可以使用
跳过

Posts.find({}, {fields: {thumb: 1, url: 1}, skip: 1})..map(fun...

如果我理解正确,您只需要在从helper函数返回之前删除posts数组的第2项。为此,您只需将
映射的结果分配给一个变量,然后调用它即可。尝试一下:

Template.motionPictures.helpers({
  posts: function() {
    var posts =
      Posts
        .find({}, {fields: {thumb: 1, url: 1}})
        .map(function(post, index) {
          if (index === 0) {
            return post;
          } else {
            delete post.url;
            return post;
          }
        });

    posts.splice(1, 1);
    return posts;
  }
});

好吧,你们两个都有很好的建议,但直到我做了那个console.log,我才意识到我必须做什么

下面的代码正如我所希望的那样工作

Template.motionPictures.helpers({
  posts: function() {
   return Posts
        .find({}, {fields: {thumb: 1, url: 1}, sort: {createdAt: -1}})
        .map(function(post, index) {
          if (index === 0) {

            delete post.thumb;
            return post;


          } else {
            delete post.url;
            return post;
          }
        });
    }
});

我试过了,但我不想跳过第一个{{url},只想跳过第一个{{thumb},我不太清楚你的意思。如果你把它改成更简洁的话,我可能会更有帮助当我使用skip选项时,它会跳过数据库中的thumb和url第一项,我希望url的第一项显示出来,但thumb的第一项不会被输出。它非常接近,但它会删除最后一个{{thumb}图像,而不是第一个。我尝试将其修改为posts.splice(0,1);这很有效,但也去掉了{{url}}第一个。我很确定这段代码删除了
posts
数组中的第二项。我怀疑问题在于这些帖子需要以一种尚未指定的方式进行排序。例如,如果您想按它们的创建日期对它们进行排序,那么您可以执行以下操作:
find({},{fields:{thumb:1,url:1},sort:{createdAt:-1}})
。我添加了我的posts变量的console.log数组由3个对象组成,我希望第一个对象删除其thumb值并保留url。没有删除整个第一个对象,我在上面添加了一个图像。是的,看起来不错。直到看到你最后的评论,我才完全理解你需要什么。别担心,我宁愿选择你的答案,但我不知道最好的做法是什么,选择我正在寻找的答案还是帮助我找到答案的答案。如果你有这样做的声誉,我想你应该接受自己的答案。如果你不能,那么我可以修改我的。