从具有层次结构信息的数组创建层次结构,该属性是带分隔符“>”的字符串,

问题描述 投票:0回答:2

假设我有一个如下所示的对象数组,该数组包含一个对象列表,该对象列表包含一个键和文档数,该键具有层次结构信息,用字符串>分隔”>,该属性的开头是父级,然后是它的孩子,依此类推。

[
    {
      key: 'sport',
      doc_count: 2
    },
    {
      key: 'sport>competition',
      doc_count: 2
    },
    {
      key: 'sport>competition>cricket',
      doc_count: 1
    },
    {
      key: 'sport>competition>football',
      doc_count: 1
    },
    {
      key: 'movies',
      doc_count: 1
    }
    {
      key: 'movies>english',
      doc_count: 1
    }
]

有人可以建议我最快的方法将此数组转换为javascript中的此分层数据(请参阅下文)。>>

[
  {
    label: 'sport',
    parent: null,
    doc_count: 2,
    children: [
      {
        label: 'competition',
        parent: 'sport',
        doc_count: 2,
        children: [
          {
            label: 'cricket',
            parent: 'competition',
            doc_count: 1,
            children: []
          },
          {
            label: 'football',
            parent: 'competition',
            doc_count: 1,
            children: []
          }
        ]
      }
    ]
  },
  {
    label: 'movies',
    parent: null,
    doc_count: 1,
    children: [
      {
        label: 'english',
        parent: 'movies',
        doc_count: 1,
        children: []
      }
    ]
  }
]'


假设我有一个如下的对象数组,该数组包含一个对象列表,该对象列表包含一个键和文档数,该键的层次结构信息为字符串,中间用“>”分隔,...的开头。] >

javascript arrays typescript hierarchy traversal
2个回答
0
投票

我不会为您做这件事(不是出于恶意,只是因为我不是100%确信我正确理解了这个问题),但我希望能在正确的方向上为您提供重要的帮助。

问题与递归有关。如果您不知道递归,则如下所示:


0
投票

我用这种方法解决了,

© www.soinside.com 2019 - 2024. All rights reserved.