各位大神,for in循环数组,可是为什么在templet里面,x和y变量总显示
x,y 前面加上 let
for in 的作用是遍历,但是 in出来的是索引值或属性这一点楼主要清楚
1。如果是数组类型for in 这个数组的话 :
var arr = ['a','b','c']; for(var i in arr) 那这时的i的值是0,1,2 而一般为写成
for(var idx in arr){ console.log(arr[idx]);//这样会输出a,b,c
如果for(var idx in arr) console.log(idx);//则输出 其索引0,1,2
2.如果for in 的是json对象的话,则是其属性的名称。
var obj ={a:1,b:2};for(var idx in obj) console.log(idx);//这里会输出a,b
当然你要取属性的值的话,可以写成 for(var idx in obj) console.log(obj[idx]);//这样会输出1,2
这就是for in的用法,至于楼主所说的x,y没有变,我想是楼主理解错了for in的意思。
按楼主这样用x输出的索引是在变即其只是0,1,这样的索引。y则是你json对象的名称
再说一下for in 的用处是遍历json对象时比较好用,而且用foreach完全不了。当然通过
原型来遍历不在讨论内。一般foreach用来遍历数组,而forin用来遍历对象及数组。
还有补充一点in 是一个操作符返回布尔,表示一个对象名称是否存在于对象内。
即obj ={a:1}; "a" in obj //返回true
templet什么时候调用
x,y 前面加上 let
for in 的作用是遍历,但是 in出来的是索引值或属性这一点楼主要清楚
1。如果是数组类型for in 这个数组的话 :
var arr = ['a','b','c']; for(var i in arr) 那这时的i的值是0,1,2 而一般为写成
for(var idx in arr){ console.log(arr[idx]);//这样会输出a,b,c
如果for(var idx in arr) console.log(idx);//则输出 其索引0,1,2
2.如果for in 的是json对象的话,则是其属性的名称。
var obj ={a:1,b:2};for(var idx in obj) console.log(idx);//这里会输出a,b
当然你要取属性的值的话,可以写成 for(var idx in obj) console.log(obj[idx]);//这样会输出1,2
这就是for in的用法,至于楼主所说的x,y没有变,我想是楼主理解错了for in的意思。
按楼主这样用x输出的索引是在变即其只是0,1,这样的索引。y则是你json对象的名称
再说一下for in 的用处是遍历json对象时比较好用,而且用foreach完全不了。当然通过
原型来遍历不在讨论内。一般foreach用来遍历数组,而forin用来遍历对象及数组。
还有补充一点in 是一个操作符返回布尔,表示一个对象名称是否存在于对象内。
即obj ={a:1}; "a" in obj //返回true
templet什么时候调用