如何从下列数据中提取想要的格式?

题目描述

有如下数据:

let productions = [{
  "children": [{
    "children": [{
      "label": "55Q1R",
      "value": "55Q1R"
    }],
    "label": "ZLM50HiS",
    "value": "ZLM50HiS"
  }],
  "label": "5327",
  "value": "5327"
}, {
  "children": [{
    "label": "ZLM60HiS2",
    "value": "ZLM60HiS2"
  }],
  "label": "5508",
  "value": "5508"
}];

需要从上面数据中提取 value ,得到如下的结构:

let selected = ['5327', '5327/ZLM50HiS', '5327/ZLM50HiS/55Q1R', '5508', '5508/ZLM60HiS2']

请问如何实现呢?

阅读 1.4k
1 个回答
function getValue (current, result = [], scope = []) {
  current.forEach(item => {
    if (item.value) {
      result.push([...scope, item.value].join('/'))
    }
    if (item.children) {
      getValue(item.children, result, [...scope, item.value])
    }
  })
  return result
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题