js将接口返回的JSON格式数据转换成Antd的treeSelect需要的结构

 const initResponseDatakey = (responseData, keys) => {
    // 获取response的所有key 并生成tree供treeSelect使用
    if (responseData) {
      if (Object.prototype.toString.call(responseData) === '[object Array]') {
        // 是数组取第一项
        responseData = responseData[0];
      }
      let currentIndex = 0;
      for (const i in responseData) {
        if (Object.prototype.toString.call(responseData[i]) === '[object Array]') {
          keys.push({ title: i, value: i, children: [] });

          for (const j in responseData[i][0]) {
            keys[currentIndex].children.push({
              title: `${i}.${j}`,
              value: `${i}.cbzIndex.${j}`,
              children: [],
            });
          }
        } else if (Object.prototype.toString.call(responseData[i]) === '[object Object]') {
          keys.push({ title: i, value: i, children: [], disabled: true });
          let index = 0;
          for (const j in responseData[i]) {
            keys[0].children.push({ title: `${i}.${j}`, value: `${i}.${j}`, children: [] });
            if (
              Object.prototype.toString.call(responseData[i][j]) === '[object Object]' ||
              Object.prototype.toString.call(responseData[i][j]) === '[object Array]'
            ) {
              initResponseDatakey(responseData[i][j], keys[currentIndex].children[index++]);
            }
          }
        } else if (keys.children) {
          keys.children.push({ title: `${keys.title}.${i}`, value: `${keys.title}.cbzIndex.${i}` });
        } else {
          keys.push({ title: i, value: i });
        }
        currentIndex++;
      }
    }
    setApiKey(allKey);
  };

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值