数组拆分及拼接

下面这样一个数组,怎么拆分拼接之后为这样
{资源/Axure Components },{资源/Sketch Templates},{资源/组件交互文档}

[{"value":"ziyuan","label":"资源","children":[{"value":"axure","label":"Axure Components"},{"value":"sketch","label":"Sketch Templates"},{"value":"jiaohu","label":"组件交互文档"}]}]
阅读 1.6k
2 个回答

看了下题目是不是有写错了,{资源/Axure Components },{资源/sketch},{资源/组件交互文档}其中{资源/sketch}和其他的逻辑不一样,也没有额外说明,我理解是写错了。


不考虑扩展和其他的话,就
arr.map(e=>e.children.map(x=>`{${e.label}/${x.label}}`).join(","))[0]
arr代指目标数组。
扩展有children就需要往下算的话,就得写个方法然后递归。

试试看如下写法

const arr = [
          {
            value: "ziyuan",
            label: "资源",
            children: [
              { value: "axure", label: "Axure Components" },
              { value: "sketch", label: "Sketch Templates" },
              { value: "jiaohu", label: "组件交互文档" },
            ],
          },
        ];
        const handleArr = arr.map(item => {
            let tempArr= []
            item.children.forEach(tItem => {
                const str = `${item.label}/${tItem.label}`
                tempArr.push({str}) 
            })
            return tempArr
        }) 
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题