Javascript JADE:for和each的区别

Javascript JADE:for和each的区别,javascript,pug,Javascript,Pug,为什么两者之间有区别 - for(var user in users) { p= user //output: user1 - }; 及 根据,它们是别名,那么为什么它们有不同的输出呢 用户列表(JSON格式) 最终找到了一个可行的解决方案,我必须使用value,index,否则将返回一个对象 each value, index in users li= index //output: user1 它们做同样的事情,但是for是javascript的方式,而每个都是jade的方式 在

为什么两者之间有区别

- for(var user in users) {
  p= user //output: user1
- };

根据,它们是别名,那么为什么它们有不同的输出呢

用户列表(JSON格式)


最终找到了一个可行的解决方案,我必须使用
value,index
,否则将返回一个对象

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

它们做同样的事情,但是
for
是javascript的方式,而
每个
都是jade的方式

在Jade中,您可以放置
-
并开始编写javascript、
for
while
或其他内容

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

这有点不同,因为users
中的每个用户

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

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

您不是使用Jade的
for
,而是使用javascript的

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

for user in users
  p= user

在您的例子中,由于
-
,您使用的是Javascript自己版本的
for
,它迭代对象的键,而不是其值。

我认为这与连字符有关,但我不是sure@Aᴍɪʀ:在的de文档中,他们说for和每个都是别名,但我想我解决了它(见下面我的答案)我的答案正确吗?好吧,这是有道理的,至少如果你是对的(因为有人否决了你的答案),我是对的。你可以在jade-lang.com上自己测试一下,看看。我不知道为什么会有人投反对票:)另一个问题:我的老师使用了这个循环:users.list中的每个用户,但我不知道如何使用users.list,它不断出现错误这并没有解决核心问题,即
for
每个
都是别名,但是问题中使用的
不是Jade的
for
,而是javascript的。@NickSpriet我只是想告诉你为什么它们不同。如何在项目中利用它们取决于你自己。你不能这样写。。它给出了以下错误:
无法读取未定义的属性“length”
@NickSpriet它似乎只适用于数组。你在哪里读到的,他们是化名?我在文件里找不到。这是
每章的最后一句话(我为您制作了printscreen:),我的用户列表是一个JSON-object@NickSpriet至少在这里,它对我来说是完美的:
for (var key in users) {
    var user = users[key];
    // the rest of the code
for user in users
  p= user