六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 247|回复: 0

我的递归呀

[复制链接]

升级  68.33%

119

主题

119

主题

119

主题

举人

Rank: 3Rank: 3

积分
405
 楼主| 发表于 2013-1-29 08:44:14 | 显示全部楼层 |阅读模式
/** * 找到所有子小题 */function searchSubNode(src_arr, p_node) {var ret_arr = [p_node.getContent()]var sub_arr = [];for (var i = 0; i < src_arr.length; i++) {var node_i = src_arr;if ("" === node_i) {continue;}var has_p = node_i.hasP();if (has_p === p_node.getVSubName()) {// 如果has_p属性和父亲节点的vsubname节点值相等src_arr.splice(i, 1, "");// 删除第i个元素var has_sub = node_i.hasSub();if ("no" === has_sub) {var content = node_i.getContent();sub_arr.push(content);} else {sub_arr = searchSubNode(src_arr, node_i);}}}ret_arr.push(sub_arr);return ret_arr;} 以上是递归求出所有的子小题
以下是示例结果集:
["<vsubcontent value=\"no\"><vsubname>a</vsubname><vsubvalue>1</vsubvalue></vsubcontent>","<vsubcontent value=\"no\"><vsubname>b</vsubname><vsubvalue>2</vsubvalue></vsubcontent>", ["<vsubcontent value=\"yes\"><vsubname>hh</vsubname><vsubvalue>3</vsubvalue></vsubcontent>", ["<vsubcontent value=\"yes\"><vsubname value=\"hh\">aa</vsubname><vsubvalue>3.1</vsubvalue></vsubcontent>",["<vsubcontent value=\"no\"><vsubname value=\"aa\">aaa</vsubname><vsubvalue>3.1.1</vsubvalue></vsubcontent>", "<vsubcontent value=\"no\"><vsubname value=\"aa\">bbb</vsubname><vsubvalue>3.1.2</vsubvalue></vsubcontent>"], "<vsubcontent value=\"no\"><vsubname value=\"hh\">bb</vsubname><vsubvalue>3.2</vsubvalue></vsubcontent>"],]] 哎,我得学学算法了!
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表