关于数据处理(对复杂数据的映射处理)

本文介绍了一种处理嵌套数据结构的方法,通过递归函数getMap将原始数据转换为更简洁的形式,仅保留title和key字段,适用于需要快速访问特定层级数据的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要处理的数据结构:

// 要求: category_name为title,category_code为key,只需要title和key数据
 var arr = {
    "success": true,
    "message": null,
    "errorCode": null,
    "data": [{
      "category_code": "2261",
      "category_name": "涂料化工",
      "parent_code": "148",
      "hierarchy_level": "2",
      "children": [{
        "category_code": "2257",
        "category_name": "真石漆",
        "parent_code": "2261",
        "hierarchy_level": "3"
      }]
    }, {
      "category_code": "2260",
      "category_name": "装修石材",
      "parent_code": "148",
      "hierarchy_level": "2",
      "children": [{
        "category_code": "216",
        "category_name": "大理石",
        "parent_code": "2260",
        "hierarchy_level": "3"
      }]
    }]
  }

  function getMap(arr) {
    var data = []
    if (arr && arr.length > 0) {
      data = arr.map(item => {
        if (item.children && item.children.length > 0) {
          var res2 = getMap(item.children)
          return {
            title: item.category_name,
            key: item.category_code,
            children: res2
          }
        } else {
          return {
            title: item.category_name,
            key: item.category_code
          }
        }
      })
    }
   return data
  }
  console.log(getMap(dataArr))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值