解析时的额外值,然后循环遍历一个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]);
答
你应该通过一个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]);
}
嘿马特 - 感谢您的快速回复。我一直使用PHP编码时间过长,并且对foreach()过于自在。 :) – 2010-12-07 18:56:26