[
{
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
GooMS 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
tumbzzc 2017-12-05 09:39:58 +08:00 via Android
#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 2
|
51
SO647898 2017-12-05 16:44:32 +08:00 via Android
@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 1
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,这样我想显示几层楼,就必须手动循环几次,,超级费事,,
|