微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

即使它存在,也找不到迭代器的长度/大小

如何解决即使它存在,也找不到迭代器的长度/大小

编辑:正如有人指出的那样,这与控制台的异步性质有关,可以在此处找到答案:Weird behavior with objects & console.log

我有一个问题,JS 将正确检测迭代器,但无法直接访问其属性:我知道这一点,因为我可以使用 console.log() 迭代器,它会正确返回非空结果size > 0,但是如果我使用console.log() iterator.size,我得到0。没有错误信息。

此处,listofLabelLists 的类型为 Set<string>[],尽管我尝试将其元素从集合转换为映射和数组,结果相同:我可以正确记录 labelList,但是仅记录其大小/长度属性返回 0,因此永远不会读取代码(在下面注释)。

listofLabelLists.forEach(labelList => {

//console.log(labelList) returns a set with size 7.
//console.log(labelList.size) returns 0.

  labelList.forEach(wordLabel => {//This never runs because the set is interpreted as empty.
    ...
  })
})

我用 TypeScript 写了这段代码,所以我想知道它是否编译不正确。但是,在文件上运行 tsc 输出 JS 格式版本后,看起来 TypeScript 没有错,因为相关的 JS 部分是相同的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。