js遍历对象的层级(深度)以父级标题

let data = [
  {
    "score": 10,
    "items": [
      {
        "tit": "",
        "score": 10,
        "items": [
          {
            "tit": "知识",
            "score": 9,
            "items": [
              {
                "tit": "三角型",
                "score": 1,
                "items": []
              },
              {
                "tit": "平行四边形",
                "score": 1,
                "items": []
              }
            ]
          },
          {
            "tit": "技能",
            "score": 1,
            "items": [
              {
                "tit": "逻辑",
                "score": 1
              },
              {
                "tit": "运算能力",
                "score": 1
              }
            ]
          },
          {
            "tit": "能力",
            "score": 0,
            "items": []
          }
        ]
      }
    ]
  }
];
(function ps(data, depth, ptit) {
  for (let v of data) {
    if (v.tit || '') {
      console.log(v.tit, depth, ptit)
    }
    if (v.hasOwnProperty('items') && v.items.length) {
      ps(v.items, depth + 1, v.tit);
    }
  }
})(data, 0, '');

result:

知识 2
三角型 3 知识
平行四边形 3 知识
技能 2
逻辑 3 技能
运算能力 3 技能
能力 2

posted @ 2017-12-13 12:25  yudis  阅读(4555)  评论(0编辑  收藏  举报