【问题标题】:How to iterate an array of objects and list key & value in pug如何迭代对象数组并在 pug 中列出键和值
【发布时间】:2021-09-17 05:31:07
【问题描述】:

我正在尝试显示来自不完整表单的错误。我有一个包含对象的数组,并且想遍历数组并获取其中的错误。但是列表是空的。 调试器显示错误变量包含

[
  {
    email: "Enter a valid email of format boy@example.com",
  },
  {
    username: "Enter a valid username",
  },
] 
 

哈巴狗文件

 .auth-head
     h2 Join Us Now.
     p Start by creating your account
       ul  
       each error in errors
         each val,key in error 
           li= val

我如何将它传递给哈巴狗

  res.render("signup",{errors:req.flash('validationFailure')});

编辑。我已经编辑了要作为数组@Barmar 中的单个对象返回的错误

新哈巴狗

.auth-head
   h2 Join Us Now.
   p Start by creating your account
   ul  
   each val,key in errors
     li= val

新的错误对象。

[
  {
    email: "Enter a valid email of format boy@example.com",
    username: "Enter a valid username",
  },
]

【问题讨论】:

  • 你有一个具有不同键的对象数组,而不是一个具有所有这些键的对象,这是有原因的吗?
  • 不应该是li=val吗?
  • @Barmar 我试过了,但总是空白
  • 当然,如果你这样做,你必须改变循环。摆脱each error in errors,只剩下each val, key in errors
  • 让我编辑代码因为我也修改了循环@Barmar

标签: javascript arrays express iteration pug


【解决方案1】:

您可以在unbuffered code block 中使用标准的for...in 循环来迭代对象的属性。

使用你的初始数据,你可以用这个哈巴狗达到你想要的结果:

.auth-head
  h2 Join Us Now.
  p Start by creating your account
  ul  
    each error in errors
      - for (const property in error)
        li= error[property]

使用修改后的数据:

.auth-head
  h2 Join Us Now.
  p Start by creating your account
  ul  
    - for (const property in errors[0])
      li= errors[property]
        

【讨论】:

    猜你喜欢
    • 2020-05-18
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    相关资源
    最近更新 更多