js for in 循环一个三层的对象,但是到第二层就不能获得value值了,求大神指导

No_早 2018-09-15 09:25:02

dataSQ:{
"name0": {
"name01": {
"order": 7,
"user": [
51608
]
},
"name02": {
"order": 1,
"user": [
167536
]
},
"name03": {
"order": 3,
"user": [
169896
]
}
}
}

(arrdata)=>{
let arrdataL = Object.keys(arrdata).length;
let keys=[];//定义一个数组用来接受key
let keys2=[];//定义一个数组用来接受key
let values=[];//定义一个数组用来接受value
let values2=[];//定义一个数组用来接受value
for(var key in arrdata){
keys.push(key);
values.push(arrdata[key]);//取得value
console.log(key);// 输出: name0
console.log(arrdata[key]);// 输出object及内容:Object {__ob__: io}

for(var vv in arrdata[key]){
keys2.push(vv);
values2.push(arrdata[vv]);//数组为空
console.log(" "+vv);输出:name01、name02、name03
console.log(" "+arrdata[key].vv);输出:undefined
console.log(" "+arrdata[vv]);输出:undefined

for(var v2 in arrdata[vv]){
// console.log(‘咳咳 这步还没到’);
}

}

}

}

arr(dataSQ);



求大神指导小弟
使用for in进入对象的第一层 获取key和value都没问题
第二层key没有问题,但是value出不来,一开始很简单,并且没有思考的顺手写上console.log(" "+arrdata[vv]),输出undefined,我意识到key为vv的对象在arrdata对象内部的第二层,这样肯定不能直接获取了,于是便有了console.log(" "+arrdata[key].vv);这句,想先获取上一层的value值,在获取这层key去获取这层的value值,但是显然是失败的,我才疏学浅,想请大神出山,解决我这一小小的,但是却让我很扎心的问题吧
拜托了
...全文
429 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
No_早 2018-09-16
  • 打赏
  • 举报
回复
引用 1 楼 onepersons的回复:

arrdata[key].vv

改成

arrdata[key][vv]
谢大神 小弟记住了
onepersons 2018-09-15
  • 打赏
  • 举报
回复

arrdata[key].vv

改成

arrdata[key][vv]

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧