找出json數據裏面的href值並且算出它的層級

<!DOCTYPE html>

<head>

<meta charset="utf-8">

<title>ua</title>

</head>

<body>

</div>
<script type="text/javascript">
//遞歸時 href,層級 結果
var data = [
  {
    "resName": "ETC管理",
    "powerCode": 2060001,
    "href": "1"
  },
  {
    "resName": "保險",
    "child": [
      {
        "resName": "放空險管理",
        "powerCode": 2060002,
        "href": "2"
      },
      {
        "resName": "放空險管理",
        "powerCode": 2060002,
        "child": [
          {
            "resName": "放空險管理",
            "powerCode": 206000,
            "href": "3"
          },
          {
            "resName": "放空險管理",
            "powerCode": 2060002,
            "href": "4"
          },
          {
            "resName": "放空險管理",       
            "powerCode": 2060002,
            "href":"5"
          }
        ]
      },
      {
        "resName": "放空險管理",
        "powerCode": 2060002,
        "href": "7"
      }
    ]
  },
  {
    "powerCode": 2060003,
    "resName": "廣告管理",
    "href": "8"
  }
];


//拿到數組值
function addExpand(arr, find){
  var crr = {};
  var i=0;
  for(var j in arr){
   var item = arr[j];
   if (j == find) {
        crr[j] = arr[j];
      }
   if(typeof item === 'object'){
      crr[j] = addExpand(item, find);
    }
  }
  return crr;
}
var b = addExpand(data, 'href');
console.log(b)
console.log(JSON.stringify(b));

//拿出對應的層級數
var d = {};
function deep(arr,n=1){
    var c =n;
    for(var j in arr){
      var n=0;
        if(Object.keys(arr[j]) !="href"){
            n++;
            deep(arr[j].child,n+c);
        }else{
          d[arr[j].href] = c+n;
            n=0;
        }

    }
    return d;
}
console.log(deep(b))

</script>

</body>


</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章