javaScript遍历已知对象的属性值显示‘undefined’的问题 |
您所在的位置:网站首页 › js怎么取出数组中对象的值 › javaScript遍历已知对象的属性值显示‘undefined’的问题 |
数据解析遇到到一个小问题,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 |