我想在控制台中打印环绕的,但我有一段时间访问它。所以,如果我想访问“Vignesh”有一个“好”的评论,并假设结果是指树的根,我的代码将是
console.log(result["Vignesh"]["comments"][0]["A"]);
如何访问评论的关键字? “A”,“B”和“C”?因为生病把它放在一个for循环中,所以它会显示他/她的所有评论。
显示姓名(“Gokul”,“kavin”等)的初始代码及其所有评论。
for(var key in result){ //key returns Gokul, Kavin etc
for(var key2 in result[key].comments){ //key2 returns exm 0 1 2 in comments
console.log(result[key]["comments"][key2]["A"].....);
}
}
答案 0 :(得分:0)
这将有效:
for(var key in result){ //key returns Gokul, Kavin etc
for(var key2 in result[key].comments){ //key2 returns exm 0 1 2 in comments
var comment = result[key]["comments"][key2];
console.log(comment[Object.keys(comments)[0]]);
}
}
顺便说一句,在可能的情况下,为了便于阅读,最好使用点符号而不是方括号。所以result[key].comments
代替result[key]["comments"]
。
答案 1 :(得分:0)
获取对象属性名称的关键是使用Object.keys()
。如果您控制后端,我建议将注释结构重新编码为更易读的格式,如comments: [{name: 'A' , text: 'good'}]
。话虽如此,以下是使用Object.keys()
获取当前数据模型所需信息的方法:
var result = {
Vignesh: {
avgrating: 2.33,
comments: [
{A: "good"},
{B: "Bad"},
{B: "so good"},
]
}
}
for (var topLevelUser in result){
if (result.hasOwnProperty(topLevelUser) && result[topLevelUser].comments){
console.log(topLevelUser);
var comments = result[topLevelUser].comments;
comments.forEach(function(comment){
var subUser = Object.keys(comment)[0];
var text = comment[subUser];
console.log(subUser, '=>', text)
});
}
}

答案 2 :(得分:-1)
这样做:
result["Vignesh"]["comments"][0].forEach(function(value,key){console.log('Comment '+key+': '+value+'; ')});