所以,我有一个JSON字符串,我打算解析它,并提醒内容,就像这样。
var json_string = '[1,2,3,4,5]';
var parsed_string = JSON.parse(json_string);
for(x in parsed_string) alert(x)
但是,我不仅获得了五个元素,而且还得到了一大堆额外的问题,我没有要求... $ constructor,$ family,append,associate等...
有没有什么办法可以在没有达到这些额外值的情况下迭代这个数组?
编辑:对于那些想知道的人 - 我后来意识到parsed_string.length返回正确的数组长度供我迭代。
答案 0 :(得分:2)
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]);
答案 1 :(得分:2)
你应该像这样循环一个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]);
}