被困住了——如何从层级结构中获取子集

被困住了——如何从层级结构中获取子集_第1张图片

大家好,我是欧阳方超,我被一个问题困住了。
事情是这样的,与第三方平台对接时,第三方接口返回了一个具有层级结构的列表,比如下面这种结构:

[
  {
    "id": 1,
    "name": "Root Category 1",
    "subcategories": [
      {
        "id": 2,
        "name": "Category A",
        "subcategories": [
          {
            "id": 3,
            "name": "Category 1",
            "subcategories": null
          },
          {
            "id": 4,
            "name": "Category 2",
            "subcategories": null
          }
        ]
      },
      {
        "id": 5,
        "name": "Category 3",
        "subcategories": null
      }
    ]
  },
  {
    "id": 6,
    "name": "Root Category 2",
    "subcategories": [
      {
        "id": 7,
        "name": "Category A",
        "subcategories": [
          {
            "id": 8,
            "name": "Category 1",
            "subcategories": null
          },
          {
            "id": 9,
            "name": "Category 2",
            "subcategories": null
          }
        ]
      },
      {
        "id": 10,
        "name": "Category 3",
        "subcategories": null
      }
    ]
  }
]

目标是根据一些输入条件查询到这样一种层级结构:从根节点到当前节点,输入条件具体来说是这样的,“根节点名称;二级节点名称;三级节点名称”,如果只输入一个节点名称,且不是根节点看到名称,则返回空;如果三个节点都输入了但因为条件不匹配,则返回空;如果条件符合,比如输入了"Root Category 1;Category A;Category 1",则返回下面的结构:

[{
	"id": 1,
	"name": "Root Category 1",
	"subcategories": [{
		"id": 2,
		"name": "Category A",
		"subcategories": [{
			"id": 3,
			"name": "Category 1",
			"subcategories": null
		}]
	}]
}]

并最终通过这个结构获取到每个节点发的id,这个问题困惑我好久了,真头疼。朋友们谁有思路吗,请在评论区给些思路,感谢各位!

你可能感兴趣的:(开发遇到的小问题,数据结构)