js多层嵌套,只知道最后一个值,如何遍历获取到所有父级

数据结构有多个层级嵌套,如下: 目前获取到的值只有 "521" 这个值,如何遍历获取到 "1045-SCG"和"968"

数据结构:

[
  {
    "value": "1045-SCG",
    "label": "蛟龙系统",
    "children": [
      {
        "value": "968",
        "label": "蛟龙号",
        "children": [{
          "value": "521",
          "label": "翅膀",
        }]
      }
    ]
  },
  {
    "value": "1044-SCG",
    "label": "111",
    "children": []
  },
  ,
  {
    "value": "1036-SCG",
    "label": "海原系统",
    "children": [
      {
        "value": "264",
        "label": "我要下单",
        "children": [
          {
            "value": "271",
            "label": "下单模板",
            "children": []
          }
        ]
      }]
  }
]
阅读 3.5k
2 个回答
function l(data, val) {
  for(var i=0;i<data.length;i++){
    if(data[i]&&data[i].value == val){
      return [];
    }
    if(data[i]&&data[i].children){
      var d = l(data[i].children,val);
      if(d)
        return d.concat(data[i].value);
    }
  }
}

l(data,'271');

简单对象没有自己是哪个对象属性的记录,你得重新设计数据结构

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题