javaScript遍历已知对象的属性值显示‘undefined’的问题

您所在的位置:网站首页 js怎么取出数组中对象的值 javaScript遍历已知对象的属性值显示‘undefined’的问题

javaScript遍历已知对象的属性值显示‘undefined’的问题

2023-10-03 18:38| 来源: 网络整理| 查看: 265

数据解析遇到到一个小问题,json格式的数据多层嵌套,大概长这样,事实上结构比这个还复杂(为什么这样?我也不知道, 这要问已经不在的服务端的同志…..) ex:

{ "data":[ { "刑事":[4,0,0,0,0,0,0,0,0,0,0,0], "火灾":[0,0,0,0,0,0,0,0,0,0,0,0], "治安":[2,0,0,0,0,0,0,0,0,0,0,0], "交通":[3,0,0,0,0,0,0,0,0,0,0,0], "求助":[2,0,0,0,0,0,0,0,0,0,0,0], "其他":[0,0,0,0,0,0,0,0,0,0,0,0] }, { "time": { "date":22, "day":5, "hours":14, "minutes":58, "month":11, "seconds":26, "time":1513925906648, "timezoneOffset":-480, "year":117 } } ] }

想遍历拿到对象中的数组: javaScript中,数组可以用循环遍历,但是最初用for循环遍历对象,显示undefined; 如:

for (var Key in res.data.data[0]){ console.log( Key+':'+res.data.data[0].Key); }

而以下就可以:

for (var Key in res.data.data[0]){ console.log( Key+':'+res.data.data[0][Key]); }

for..in循环遍历对象属性,取值时应该这样写,obj[property] 这是为什么呢?

因为property是变量,所以要用中括号,而不是取值。 obj.property取的是obj对象中,键为property的值,也就是obj的名为property的属性值,因为不存在,所以没拿到,就会打印出undefined

再如:

var data ={ '阴天':'15', '晴天':'81', '雨天':'12' }; 这样: for (var Key in data){ console.log( Key+':'+data[Key]); }

以上可以在控制台打印: 阴天:15 晴天:81 雨天:12

而以下就不行

for (var val in data){ console.log( val+':'+data.val]); }

会在控制台打印: 阴天:undefined 晴天:undefined 雨天:undefined



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3