JS中的for…in…
在Java或者OC中,大家都会使用遍历方法for…in…,一般用于操作List或者NSArray,今天在操作JS的时候遇到了一个坑
1 | var array = new Array() |
该代码打印出来的结果是
1 | 0 |
发现 temp并不是array里的value而是其index 需要修改为
1 | for (var temp in array) { |
产生的原因
之所以会产生这种情况,是因为JS本身的Object结构的问题
1 | var object = { |
Object作为根本对象,其储存方式都是Key-Value键值对的形式,所以说Array这种Object,只不过自动把Key设置成0,1,2…,而JS的for…in…循环,只能遍历Object的key对象,这种性质带与Java等不同的是,JS默认可以对任何类型进行遍历,而不仅仅是List。
1 | var dict = {"key01": 5,"key02": 10, "key03": 20} |
输出
1 | key01 |
甚至对方法名进行遍历
1 | var obj = { |
输出
1 | inVar01 |