后端返回这样的 json 数组,前端怎么循环该数组成楼中楼的评论显示?

2017-12-04 21:56:24 +08:00
 s609926202
[ 
    { 
        id: 2, 
        post: 73, 
        parent: 0, 
        children: [ 
            { 
                id: 3, 
                post: 73, 
                parent: 2 
            } 
        ], 
    } 
]

突然不知道该怎么处理 children 循环了,,,

5685 次点击
所在节点    问与答
63 条回复
mingzu
2017-12-05 09:44:09 +08:00
@SO647898 哈哈哈啊哈哈,把 block 当作必杀技了吧?
别人不回你帖子就是单纯嫌你,别挂在自己性别上.
s609926202
2017-12-05 09:48:26 +08:00
@loveyu 哈哈,我算法不行,而且我是前端+后端,标准码农一枚…
tumbzzc
2017-12-05 09:48:41 +08:00
@mingzu 我还以为他是专门 block 而注册的 v2
mingzu
2017-12-05 09:49:40 +08:00
@s609926202 递归走起来呀~
mingzu
2017-12-05 09:51:11 +08:00
@tumbzzc 真是好好笑哎,因为自己发的帖子被别人怼了 block,且没人搭理,
于是就开始 diss 别人..
最起码换个小号呀得..这多尴尬..哈哈哈哈哈
s609926202
2017-12-05 09:51:26 +08:00
@mingzu 其实我调用的接口返回给我的就是普通的数据表记录值,然后我在前端处理成这样的 children,,
loveCoding
2017-12-05 09:51:38 +08:00
有层级的数据都是这样传递的啊..
mingzu
2017-12-05 09:54:26 +08:00
@s609926202 我比较菜啊,一般处理数据都得放在后端吧,前端处理这种逻辑好像不大合适的。
应该是后端把数据处理好 前端直接遍历 吧大概。
听听别的大佬咯。
SO647898
2017-12-05 11:53:04 +08:00
@mingzu
不如替换开头四个字为“文科女生”搜索一下试试?
讽刺虽然具有时代性,但我没想到,这会让人。。。已 block。
codermagefox
2017-12-05 12:16:25 +08:00
@SO647898 我觉得你才比较像贴吧选手,是不是还要拉个旗搞家族 block 大战啊?MDZZ
onlyhot
2017-12-05 12:25:47 +08:00
@SO647898 已 b
tumbzzc
2017-12-05 12:40:58 +08:00
@SO647898 历史发言主题单调。已 block
mingzu
2017-12-05 12:55:41 +08:00
@SO647898 哈哈哈哈,单身是因为女生都拜金,没钱是因为自己不是富二代,成绩不好是因为老师差
其实都是因为你是你。

谢谢 block
cjyang1128
2017-12-05 13:07:00 +08:00
@SO647898 兄弟你好逗。。
billie
2017-12-05 13:13:03 +08:00
@SO647898 才没有人在意你的
block,加戏
meszyouh
2017-12-05 13:14:47 +08:00
遍历,生成一个多叉树就可以了
douglas1997
2017-12-05 13:16:06 +08:00
@SO647898 @livid 不友善言论
killerv
2017-12-05 13:44:24 +08:00
递归实现吧。
--------------
v 站总是有些人以为自己 block 一下别人好像会对别人有多大影响似的。
searene
2017-12-05 13:53:58 +08:00
随手写了一下。

function printComments(comments, depth) {
for(var i = 0; i < comments.length; i++) {
var c = comments[i];
console.log(getSpaces(depth * 2) + "My post is " + c.post);
if(c.hasOwnProperty("children")) {
printComments(c.children, depth + 1);
}
}
}

function getSpaces(n_spaces) {
spaces = "";
for(var i = 0; i < n_spaces; i++) {
spaces += " ";
}
return spaces;
}

json = [
{
id: 2,
post: 73,
parent: 0,
children: [
{
id: 3,
post: 73,
parent: 2
}
],
},
{
id: 4,
post: 29,
parent: 0
}
];
printComments(json, 0);

输出:
My post is 73
My post is 73
My post is 29
searene
2017-12-05 13:54:20 +08:00
居然格式全乱了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/411965

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX