我的递归呀

/**
 * 找到所有子小题
 */
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[i];
		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>"
		],
	]
]

 哎,我得学学算法了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值