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