【问题标题】:Iterating over an Array in Meteor在 Meteor 中迭代一个数组
【发布时间】:2015-04-18 17:47:01
【问题描述】:

我有以下测试集合,其中每个文档的外观如下:

firstName: "Jeff",
     lastname: "Harper",
     scores:[ {'period':'week one', 'score':90},
              {'period':'week two', 'score':85},
              {'period':'week three','score':92},
              {'period':'week four', 'score':87}

我想遍历分数数组并 console.log 分数。作为试用,我尝试过:

Test.find()forEach(function(doc){ console.log( doc.firstName ) } );

这可以很好地打印出名字。如果我想打印数组对象中的第一个分数,即尝试以下语句:

Test.find()forEach(function(doc){ console.log( doc.scores[0].score ) } );

这是行不通的。如何访问对象数组中的元素?

【问题讨论】:

  • 这应该可以正常工作。我刚刚在控制台中使用类似的数据结构进行了测试,没有出现问题。检查您的语法,我发现您在问题中缺少 find() 和 forEach() 之间的句点。
  • 请解释在这种情况下“不起作用”是什么意思。你有错误吗?没有它,我们只能推测。也许有些文档的分数列表是空的?
  • Christian--我还没有填写所有文档以包含分数数组对象,因为有很多。我想先确定一下我的语法,然后我刚刚输入了一些带有分数数组的文档。这会导致问题吗?如果是这样,我如何在处理文档之前测试文档以确保它有一个分数数组对象?

标签: meteor


【解决方案1】:

感谢大家的意见。 Christian Fritz 发现了我的问题。现在,我将搜索限制为仅具有对象数组的文档。 forEach 方法和 fetch() 方法现在都可以工作了。但是,Ethaan,我必须在主 for 循环中包含一个内部 for 循环才能访问每个内部分数。感谢您的帮助和编辑以及美丽的亚洲公主的照片。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 2017-10-11
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 2011-02-17
    • 2019-11-17
    相关资源
    最近更新 更多