解析时的额外值,然后循环遍历一个JSON字符串

解析时的额外值,然后循环遍历一个JSON字符串

问题描述:

所以,我有一个JSON字符串,我打算解析它,并提醒内容,就像这样。解析时的额外值,然后循环遍历一个JSON字符串

var json_string = '[1,2,3,4,5]'; 
var parsed_string = JSON.parse(json_string); 
for(x in parsed_string) alert(x) 

然而,我不仅得到了五行,我得到了一大堆额外的CRUD我没有问... $构造函数,$家庭,追加,联想等...

有没有什么办法可以迭代通过这个数组而不碰到这些额外的值?

编辑:对于那些想知道 - 我后来意识到parsed_string.length返回适当的数组长度供我迭代。

for in遍历所有可枚举的对象属性;对于Javascript中的数组,这是所有元素,以及您添加到数组实例或原型链中的任何对象的所有方法/属性。

这是你应该使用for ;;;来循环数组的单一原因。

var json_string = '[1,2,3,4,5]'; 
var parsed_string = JSON.parse(json_string); 
for(var i=0;i<parsed_string.length;i++) alert(parsed_string[i]); 
+0

嘿马特 - 感谢您的快速回复。我一直使用PHP编码时间过长,并且对foreach()过于自在。 :) – 2010-12-07 18:56:26

你应该通过一个JavaScript对象,这样的循环:

for (var key in obj) { 
    if (obj.hasOwnProperty(key)) { 
     alert(obj[key]); 
    } 
} 

.hasOWnProperty()确保由key指定的属性不被继承。然而,你在这里处理一个数组:

for (var i = 0; i < arr.length; i++) { 
    alert(arr[i]); 
}