IsArray在玉?循环收集与显示为字符串

时间:2014-11-09 02:32:13

标签: javascript node.js pug

翡翠的新人。简单的问题归结为决定变量是否是数组。

我的JSON:

{
  "firstName" : “tom",
  “pets" : “mouse"
}
{
  "firstName" : “phil",
  “pets" : [“cat", “dog", “horse"]
}

所以有时宠物是阵列,有时候不是。当我在我的模板中尝试这个时:

ul
    each user in requestList
        li= user.firstName
            ul
                each p in pets
                    li= p

它按照预期循环遍历逗号delim数组,但当它到达一个宠物时,它会循环遍历数组中的字符:

tom
  m
  o
  u
  s
  e
phil
  cat
  dog
  horse

我需要内部的每个循环来“决定”宠物是否是阵列。 isArray不起作用; isArray()抛出一个错误。我可以嗅一个逗号,但考虑到如此光滑的Jade(到目前为止),这看起来非常笨重。

ul
    each user in requestList
        li= user.firstName
            ul
                if user.pets.isArray
                    each p in pets
                        li= p
                else
                    li= user.pets

这可能是一般的JS问题,想一想,但我正在寻找Jade语法。

2 个答案:

答案 0 :(得分:1)

我的内联JavaScript解决方案,值得:

            - if(user.pets.constructor == Array)

它工作正常,但我会等着看Jade。

答案 1 :(得分:0)

尝试长度

 ul
       li= user.firstName
            ul
               if user.pets > 1
                  each pet in pets
                      li= pet
                    else
                      li= user.pets