今天遇到一个特别奇葩的问题,针对js弱语言,for循环出错了。
请看以下代码片段:
json.list是通过ajax拿到的数组,把它赋值给avalon定义的json,当然前提要做滞空操作。
然后对两个对象做循环,统计数组长度。
奇迹发生了:
只是做了一个简单的赋值,循环的结果却不同,诡异就出现了。
然后我们看下多出的那几个究竟是什么玩意儿,如下图所示:
由此可以看出,当用for(var a in json){}这种for循环的时候,会遍历avalon封装的一些属性,所以导致长度不一样。所以此时不能把a当作数组下标来使用!
请看以下代码片段:
json.list是通过ajax拿到的数组,把它赋值给avalon定义的json,当然前提要做滞空操作。
然后对两个对象做循环,统计数组长度。
奇迹发生了:
只是做了一个简单的赋值,循环的结果却不同,诡异就出现了。
然后我们看下多出的那几个究竟是什么玩意儿,如下图所示:
由此可以看出,当用for(var a in json){}这种for循环的时候,会遍历avalon封装的一些属性,所以导致长度不一样。所以此时不能把a当作数组下标来使用!