通过JSON数组循环提供“未定义”结果
这个问题在这里已经有了答案:
你忘记访问AlmostThere
jsonData.TheArray[i].AlmostThere.whatWeAreLookingFor
for (var i = 0; i < jsonData.TheArray.length; i++) {
console.log(jsonData.TheArray[i].AlmostThere.whatWeAreLookingFor);
}
如果以你的方式循环数组TheArray
,则contents
var将成为这两个对象:
{
"AlmostThere": {
"whatWeAreLookingFor":"Hello"
}
}
和
{
"AlmostThere": {
"whatWeAreLookingFor":"Goodbye"
}
}
现在您想要通过访问值
contents.whatWeAreLookingFor
但是这个属性对于这些对象是未定义的。 所以你的控制台日志undefined
。 您必须通过以下方式访问该值:
contents.AlmostThere.whatWeAreLookingFor
所以你得到对象AlmostThere
并选择属性whatWeAreLookingFor
。
如果你使用jQuery,你应该使用:
$.each(jsonData.TheArray, function() {
console.log(contents.AlmostThere.whatWeAreLookingFor + '!');
});
API:http://api.jquery.com/jquery.each/
for... in
遍历对象的键。 用于阵列,这意味着(大约)的索引0
, 1
, 2
,等等。
你可以使用Array.prototype.forEach来代替:
jsonData.theArray.forEach(function(contents) {
console.log(contents.AlmostThere.whatWerAreLookingFor);
})
链接地址: http://www.djcxy.com/p/70017.html