【问题标题】:for in loop returns [object Object]for in 循环返回 [object Object]
【发布时间】:2015-11-28 09:05:35
【问题描述】:

我想查看一个对象,但我不确定它实际包含什么,当我如下循环时,我得到以下结果:

<% for(var index in errors) {%>
    <%= errors[index] %>
<% } %>

[object Object] [object Object] [object Object] [object Object] [object Object]

我确实希望得到 5 个结果,但我需要以某种方式更深入地研究循环并获取内部对象的实际内容,但我不知道该怎么做?

这都是纯 javascript,上面的脚本只是 node/express 的模板引擎。

【问题讨论】:

  • 可能在errors.add JSON.stringify的另一个对象中
  • JSON.stringify(errors[index]);

标签: javascript loops object


【解决方案1】:

stringify 打印前您的对象:

<% for(var index in errors) {%>
    <%= JSON.stringify(errors[index]) %>
<% } %>

【讨论】:

  • 就是这样!还有一个问题,当我字符串化时,我得到文字 JSON 对象 param:msg,所以我做了JSON.stringify(errors[index].msg),我确实得到了适当的消息,但是用引号括起来,例如:"Name field is required"。知道如何摆脱引号吗?
  • 只有在要打印对象时才需要字符串化。 msg 是一个字符串,因此您可以跳过字符串化:&lt;%= errors[index].msg %&gt;
【解决方案2】:

错误对象可能是这样的, error={ {},{},{} } 格式,只打印字符串值而不是对象字面量, 如果要调试,可以写JSON.stringify(errors[index])

或者,如果您想打印子元素,请使用 error[index]['childKeyName']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 2013-09-13
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    相关资源
    最近更新 更多