我想通过for in 获取json中嵌套的对象的属性值,可是返回的却是undefined,代码如下:
这是json代码:
var recentUpdates = [
{
"...":"...",
"tags":{
"tag1":"html",
"tag2":"移动开发"
}
}]
这是JavaScript代码:
<script type="text/javascript">
var a = recentUpdates[0].tags;
var b;
for (var b in a){
console.log(a.b);//返回undefined
console.log(a.tag1);//返回html;
}
</script>
请问为什么console.log(a.b)会返回undefined呢?那么应该如何通过属性名获取对应的值呢?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
console.log(a[b]); //
a.b对象a的属性b而不是b的值你的a.b表示的是a里面的b这个项,而不是a[b]。。。
你换成下面这样,应该能得到正确结果
var recentUpdates = [{
var a = recentUpdates[0].tags;
var b;
for (b in a){
}
你这个b要在这个js对象里面,有这个属性,没有肯定是undefined!这个方法虽然好用,不用管json里面的结构。但是for in会查找原型链。