0

我正在尝试在 Jade 中创建一个数组,然后遍历另一个数组并从中创建一个新数组。我正在做类似的事情:

         .metadata4
          - var prepopulate = []
          - if (entry.artist_ids)
            - for (var artist in entry.artist_ids)
              - var name = entry.artist_ids[artist]
              - prepopulate.push({id: name, name: name})
        input(type='text', class='token-input', data-url="/query", data-pre=prepopulate)

这一切都很棒。但是,它似乎在列表的末尾添加了一个额外的元素(比如将函数 push 推送到数组或其他东西)。有谁知道这可能是为什么?

4

2 回答 2

2

我不确定为什么会这样,也没有测试它。作为一种解决方法,您可以做的是,声明一个新的var i = 0; ,然后在for. 并放入prepopulate.push({id: name, name: name})一个if语句中,例如if(i < entry.artist_ids.length - 1){...push...}

于 2013-06-26T03:05:36.100 回答
1

我无法使用以下数据重现此行为

entry = { "artist_ids": {1: "hello", 2:"robert"} } 

我得到以下数据前:

[{"id":"hello","name":"hello"},{"id":"robert","name":"robert"}]

这正是您所写的(尽管我怀疑您想用艺术家替换 id 的名称值)

也许您可以发布您的条目对象?

于 2013-06-26T10:47:29.967 回答