判断字符串在树形数据中是否存在

 

返回true 表明字符串在树形数据中不存在需要进一步处理

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript">
var state = "11111111111111/13123132/123233";
var obj=[{"id":1,"label":"11111111111111","children":[{"id":4,"label":"1312312","children":[{"id":7,"label":"12323"},{"id":8,"label":"211111"}]}]},{"id":2,"label":"1232321","children":[{"id":5,"label":"11223"}]},{"id":3,"label":"312313","children":[{"id":6,"label":"12323"}]}];
trees = state.split("/");
console.log(  "ob:"+JSON.stringify(equalObj (obj,trees)))
function equalObj (obj,trees){
	return jsonEqual (obj,null,trees,0)
}
function jsonEqual (nodes ,node,trees ,r ) {
             if (Array.isArray(nodes)) {
            for (var i=0, l=nodes.length; i<l; i++) {
				console.log("trees:"+trees[r]+"    label:"+nodes[i]["label"]);
				if(nodes[i]["label"]==trees[r]){
					++r;
					
					 if (Array.isArray(nodes[i]["children"])&&nodes[i]["children"].length>0){
						return jsonEqual(nodes[i]["children"],nodes[i],trees,r);}
						else{
							//return nodes[i];
							return {"trees":trees[r],"nodes":nodes[i],"bool":false}
							}
							
				}
				return {"trees":trees[r],"nodes":node,"bool":true}
              }
            
        }
    };
</script>

</head>

<body>

	
 

</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值