JADE:for和each之间的区别

时间:2015-12-24 21:25:02

标签: javascript pug

为什么

之间存在差异
- for(var user in users) {
  p= user //output: user1
- };

each user in users
  p= user //output: [object Object]

根据http://jade-lang.com,它们是别名,为什么它们有不同的输出?

用户列表(JSON格式)

users = {
    "user1": {
        "firstname": "John",
        "lastname": "Doe"
    },
    "user2": {
        "firstname": "Jane",
        "lastname": "Roe"
    }
}

3 个答案:

答案 0 :(得分:1)

最后找到一个有效的解决方案,我不得不使用value, index否则返回一个对象

each value, index in users
  li= index //output: user1

答案 1 :(得分:0)

他们做同样的事情,但for是javascript的方法,each是玉的方式。

在Jade中,您可以放置​​-并开始编写javascript,forwhile或其他任何内容。

另一方面,jade知道关键字each,并在后台将其转换为循环。

它有点不同,因为each user in users会转换为类似

的内容
for (var key in users) {
    var user = users[key];
    // the rest of the code

因此,在这种情况下,user将成为对象,而不仅仅是密钥,因为javascript' s for会迭代对象中的键。

答案 2 :(得分:0)

你没有使用Jade的for,而是Javascript的。

以下内容相当于您的each版本:

for user in users
  p= user

在您的情况下,由于-,您使用的是Javascript自己的for版本,它会迭代对象的而不是其值。