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

问题描述

编辑:正如有人指出的那样,这与控制台的异步性质有关,可以在此处找到答案: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 (将#修改为@)