
[ { id: 2, post: 73, parent: 0, children: [ { id: 3, post: 73, parent: 2 } ], } ] 突然不知道该怎么处理 children 循环了,,,
1 adspe 2017-12-04 22:15:03 +08:00 Map 套 Map ? |
2 s609926202 OP @adspe 我不知啊,, |
3 SO647898 2017-12-04 23:02:18 +08:00 via Android 可能理解能力不达标,完全不知道楼主在困扰什么。 block。 |
4 s609926202 OP @SO647898 评论楼中楼,,,这不知道吗,,, |
5 3IOhG7M0knRu5UlC 2017-12-04 23:07:41 +08:00 via Android 自己调自己 |
6 yaoliyc 2017-12-04 23:21:42 +08:00 via iPhone 递归啊 |
7 silymore 2017-12-05 00:06:04 +08:00 via iPhone 面向 V2EX 编程 |
8 sagaxu 2017-12-05 01:22:27 +08:00 via Android 宝宝树 |
10 msg7086 2017-12-05 02:55:20 +08:00 算法中的基本操作,递归(或者用堆栈和循环实现的伪递归)。 |
12 WhoMercy 2017-12-05 07:45:00 +08:00 via Android 深度优先 or 广度优先 看你们前端的展示层接口怎么填充数据方便 |
13 armoni 2017-12-05 08:17:01 +08:00 看看前端 tree 的实现,一样的 |
14 SO647898 2017-12-05 09:11:31 +08:00 via Android |
15 yunying 2017-12-05 09:14:49 +08:00 这是最最最基本的算法问题。一眼就能看出。。为什么 lz 会困扰?这不是学计算机的必修基础吗? |
16 SO647898 2017-12-05 09:16:20 +08:00 via Android |
17 gbin 2017-12-05 09:16:34 +08:00 via Android 昨天还在议论 v2 吐槽太多,好不容易发个技术问题,还要被嫌弃? |
19 TKKONE PRO #3 是一个奇葩,看历史发言,前几条都是 block ?? |
20 loveyu 2017-12-05 09:41:44 +08:00 后端有时候也挺无奈的,给这样的结构有些像 lz 一样理解不来,给整理后的结构又有些觉得要基础数据自己处理好。所以跟后端商量下就好了 |
22 s609926202 OP @loveyu 哈哈,我算法不行,而且我是前端+后端,标准码农一枚… |
24 mingzu 2017-12-05 09:49:40 +08:00 @s609926202 递归走起来呀~ |
25 mingzu 2017-12-05 09:51:11 +08:00 |
26 s609926202 OP @mingzu 其实我调用的接口返回给我的就是普通的数据表记录值,然后我在前端处理成这样的 children,, |
27 loveCoding 2017-12-05 09:51:38 +08:00 有层级的数据都是这样传递的啊.. |
28 mingzu 2017-12-05 09:54:26 +08:00 |
29 SO647898 2017-12-05 11:53:04 +08:00 via Android |
30 codermagefox 2017-12-05 12:16:25 +08:00 @SO647898 我觉得你才比较像贴吧选手,是不是还要拉个旗搞家族 block 大战啊?MDZZ |
33 mingzu 2017-12-05 12:55:41 +08:00 |
34 cjyang1128 2017-12-05 13:07:00 +08:00 @SO647898 兄弟你好逗。。 |
36 meszyouh 2017-12-05 13:14:47 +08:00 遍历,生成一个多叉树就可以了 |
37 douglas1997 2017-12-05 13:16:06 +08:00 via iPhone |
38 killerv 2017-12-05 13:44:24 +08:00 递归实现吧。 -------------- v 站总是有些人以为自己 block 一下别人好像会对别人有多大影响似的。 |
39 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 |
40 searene 2017-12-05 13:54:20 +08:00 居然格式全乱了 |
41 s609926202 OP @searene 回复无法修改默认格式的,, |
42 yexiaoxing 2017-12-05 14:03:51 +08:00 @searene 代码贴 gist 吧,这样格式不会乱 |
44 zgx030030 2017-12-05 14:05:12 +08:00 写个函数,遍历这个数组,遍历时检查每个元素是否有 children,如果有,直接再调这个函数,递归进去再遍历。。。一层层的。 萌新不懂,加 block 是什么意思? block |
45 searene 2017-12-05 14:08:29 +08:00 |
47 s609926202 OP Tks. |
48 jatesun 2017-12-05 15:30:03 +08:00 好像只能递归 |
49 Sypher 2017-12-05 15:45:18 +08:00 |
51 SO647898 2017-12-05 16:44:32 +08:00 via Android @< href="/member/DualWield">DualWield 大多数人戾气重呗,我只是正确使用 block 功能而已,我觉得有些人把礼貌使用歪了,正义也只不过是利益而已,不符合自己的利益,在某些人心里,就是不正义,你觉得真的是我不礼貌?一我没飙脏字,二来态度不好完全是他人理解问题,这论坛 n 年不加图片功能,难道我要备一套表情图连接么,当然了,我也没说我没错,毕竟一个巴掌拍不响,有些人真的喜欢没事找事,不是这攻击我就是那攻击我,我也很无语啊~ 要不是最近有很多想看的贴看不了,我也不会注册,v2 的 block 功能很棒。 |
52 1iuh 2017-12-05 16:50:36 +08:00 @SO647898 #51 我也觉得 v2 的 block 功能很赞,让我可以 block 你。已 block,记得回我一个 block 哟。 |
54 zhouwei520 2017-12-05 17:24:08 +08:00 外面的是楼回复,里面的是楼中楼回复。可以搜下递归遍历。 |
55 zhouwei520 2017-12-05 17:24:41 +08:00 就是循环套循环 |
56 zkd8907 2017-12-05 17:31:43 +08:00 https://gist.github.com/zkd8907/91ab1b5256fe173f6ffd13a6d88d2210 直接返回数组,用 referenceId 之类的外键把父评论关联上。这样好处是如果一个评论在多个评论中被回复,只要出现一次就好。数据库的存储也可以这么设计。 |
57 Icezers 2017-12-05 18:04:46 +08:00 via iPhone 用递归全部展开,再用 id 和 parent 关系组合吧 |
58 anthozoan77 2017-12-05 19:45:53 +08:00 @SO647898 有问题提出来,不解决问题,block 提出问题的人?况且 LZ 也没有虚张声势标题党。 |
59 SourceMan 2017-12-05 20:41:56 +08:00 via iPhone 哈哈哈哈哈哈哈哈 哈哈哈哈哈哈哈哈 哈哈哈哈哈哈哈 好好的技术帖吵起来了。。。 昨天还嫌这里的东西越来越没有营养 |
60 dlrdegk 2017-12-05 21:12:13 +08:00 我觉得 v2 最好能讨论一下有创意的点子或者问题,或者程序员拉拉家常 楼主这个问题可以去 segmentfault 或者百度知道问好些(逃 当然我觉得 @SO647898 说话还是冲了一点,别人只是提了个问题而已 |
61 SO647898 2017-12-05 21:29:42 +08:00 via Android |
62 vjnjc 2017-12-05 22:00:52 +08:00 楼主是觉得 children:[]这个格式不好处理吧,把它换成 parent:[]呗~ |
63 s609926202 OP @vjnjc 不是不好处理,而是我在做小程序时,如果是拿这样的数组来循环楼中楼效果,必须先循环最外层的评论,,然后在里边继续判断 clildern 然后进行循环 clildern,这样我想显示几层楼,就必须手动循环几次,,超级费事,, |