我有这段代码可以格式化对象数组,该数组列出了我想要的方式。但是,当我返回输出时,会发生一些奇怪的事情。如果我只返回 alert_cache ,它将返回null。但是,如果我像 alert_cache.workflow_steps 一样返回它,它将返回所需的数据。
有人知道如何解决这个问题吗?
if (alert_cache.length == 0) {
alert_cache.workflow_steps = {}
alert_cache.workflow_steps[keys.workflow_step] = { "errors": [], "last_error": {}};
let alr = alert_cache.workflow_steps[keys.workflow_step];
alr.errors.push(now)
alr.last_error = {message: keys.message, url:alert.step_log_url}
}
return alert_cache;
答案 0 :(得分:3)
您正在将alert_cache
用作数组,用作对象。您正在检查length
(好像是一个数组):
if (alert_cache.length == 0) {
,但是您还要分配一个非元素属性:
alert_cache.workflow_steps = {}
请注意,这样做不会更改length
。
您还没有显示如何创建alert_cache
,但是如果它是一个数组,并且随后将它与仅查看其数组条目而不查看其其他属性的东西一起使用,(例如JSON.stringify
),它将为空(不是 null
)。