【问题标题】:Array has elements but length is 0数组有元素但长度为 0
【发布时间】:2018-12-02 00:02:25
【问题描述】:

我使用一个数组,其中包含单独的数组并在其中推送对象。

我的推送看起来像:

this.storeFilesService.base64files.filetype1.push({name: file.name, base64: str});

将对象推入子数组后,我将数组记录到控制台。 控制台日志

(this.storeFilesService.base64files.filetype1);

控制台输出是:

[]
|-> 0: {name: "filename.pdf", base64: "JVBERi"}

但是当我将数组的长度记录到控制台时,输出为 0。

console.log(this.storeFilesService.base64files.filytype1.length);  -> 0

我正在尝试检查子数组是否包含对象,但我的 if 子句似乎失败了,原因是长度。

oboce 代码在角度 onInit / 构造函数方法中设置。 在此之前,我在 onDestroy 方法的最后一个组件中执行异步承诺。我认为当我到达上面的代码时,所有的承诺都应该得到解决。

为什么会出现这种行为?

更新: 尝试了 JSON 控制台日志

console.log('Array : ', this.storeFilesService.base64files.filytype1, JSON.stringify(this.storeFilesService.base64files.filytype1));

JSON -> [] Object -> 同上,包含对象。

这怎么可能?

【问题讨论】:

  • 有机会在 plunkr 或类似网站上复制它吗?因为没有上下文很难看到发生了什么。

标签: arrays typescript


【解决方案1】:

似乎与chrome的实时控制台有关。该值已在控制台中由 chrome 更新,即使它已经被打印出来。

【讨论】:

    猜你喜欢
    • 2019-01-31
    • 1970-01-01
    • 2019-11-23
    • 2020-08-27
    • 1970-01-01
    • 2018-12-10
    • 2023-03-06
    • 2021-04-06
    • 1970-01-01
    相关资源
    最近更新 更多