为什么
之间存在差异- 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"
}
}
答案 0 :(得分:1)
最后找到一个有效的解决方案,我不得不使用value, index
否则返回一个对象
each value, index in users
li= index //output: user1
答案 1 :(得分:0)
他们做同样的事情,但for
是javascript的方法,each
是玉的方式。
在Jade中,您可以放置-
并开始编写javascript,for
或while
或其他任何内容。
另一方面,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
版本,它会迭代对象的键而不是其值。