递归之Json数据扁平化
假设有这样一个场景,一个结构复杂的多维Json,你不确定它的下标索引,不确定它的嵌套多少层,只能通过某一属性的属性值来确定它是你要完成业务所需的数据。
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script src="./Json.js"></script>
<script>
function recursion(stPipeSt, items) {
items.forEach((ele,index)=>{
if(ele.stPipeSt == stPipeSt){ //如果找到对应属性,停止递归
ele["Ceshi"]="HelloWord"
console.log(ele);
}
else if(ele.children){ //如果还有子集,继续递归直到找到对应的属性
recursion(stPipeSt, ele.children);
}
})
}
recursion("3",Data); //第一个参数要查找的字段的属性值,第二个参数数据源,
</script>
</body>
</html>