首页 > 解决方案 > 数组有元素但长度为 0

问题描述

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

我的推动看起来像:

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 -> 同上,包含对象。

这怎么可能?

标签: arraystypescript

解决方案


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


推荐阅读