我正在学习玉,并试图用它进行迭代。
这是我的玉码,
body
- var users = ['one','two', 'three']
- var roles = ['admin', 'user', 'stranger']
for user in users
- if (user.role == 'admin')
p #{user} is an admin
- else
p= user.name
for user in users
ul
li= user
它打印ul
列表,但它不会打印我的第一次迭代。我在这里错过了什么吗?我应该制作user.role数组吗?如果我应该,我怎么能做到?
提前致谢!
答案 0 :(得分:1)
如果你的第一个循环需要工作,需要如下代码:
body
- var users = [{role:'admin',name:'one'},{role:'user',name:'two'}, {role:'stranger',name:'three'}]
- var roles = ['admin', 'user', 'stranger']
for user in users
- if (user.role == 'admin')
p #{user.name} is an admin
- else
p= user.name
答案 1 :(得分:0)
在两个for循环中,您正在迭代字符串数组:var users = ['one','two', 'three']
因此,在两个循环user
中都将是一个包含其中一个值的字符串。
在第一个for循环中,您尝试访问role
变量的user
属性。但由于它是一个字符串,因此没有这样的属性,而你的if语句的计算结果为False
。
在第二个循环中,您直接使用user
而不尝试访问不存在的属性。这就是它起作用的原因。