我正在处理按投票排序的评论线程。我有一个看起来像这样的基础对象。
{
"user_name": "string",
"comment": "string",
"points": "integer",
"date_time": "dateObject",
"avatar_pic": "URL",
"profile_link": "URL"
}
你现在可以忽略一切都是字符串的事实。只是为了测试而这样做。
这是带有多个评论的较大对象。会有一个未知的嵌套深度。
{
"comments": [
{
"user_name": "string",
"comment": "string",
"points": "integer",
"date_time": "dateObject",
"child": [
{
"user_name": "string",
"comment": "string",
"points": "integer",
"date_time": "dateObject",
"child" : null,
}
]
},
{
"user_name": "string",
"comment": "string",
"points": "integer",
"date_time": "dateObject",
"child": null
}
]
}
我现在在伪代码中的工作理论是这样的。
for each iteration of loop over comments array call someFunction
someFunction(){
for by points
write properties of object to screen
check if child property has an array. If array call someFunction on that array.
}
基本上 for 循环会自动检查嵌套。然后,如果它进一步向下循环并继续在屏幕上按逻辑顺序构建评论。我要记住的唯一其他要求是嵌套深度。我想根据嵌套级别缩进评论。最多缩进 3 或 4 个,然后它们会直接向下而不是在页面上进一步缩进。
较大的格式是完全灵活的。如果有更好的数据结构可以使用,我会全力以赴。我希望这是有道理的,你们摇滚!!