级联回显 -- 寻找从属关系公共方法

结果展示
在这里插入图片描述

export function regroupCascaderData(
    id, //要寻找的唯一值
    data, // 列表总数据
    key = 'label', //列表总数据 的key
    val = 'value', //列表总数据 的value
    list = 'children' //列表总数据 下属关系的key
  ) {
    let _allObj = {}
    const _allArr = []
    const setData = function(data) {
      let Obj
      for (const item of data) {
        Obj = {
          [key]: item[key],
          [val]: item[val]
        }
        if (item[val] == id) {
          Obj['isOk'] = true //如果条件符合,接下来就不会再判断
          return Obj
        } else if (item[list] && item[list].length) {
          Obj[list] = setData(item[list])
          if (Obj[list] && Obj[list]['isOk']) {
            Obj['isOk'] = true
            return Obj
          }
        } else {
          Obj = null
        }
      }
      return Obj
    }
    const getObjData = function(data) {
      // 递归向数组中填充数据 
      _allArr.push(data[val])
      if (data[list]) {
        getObjData(data[list])
      }
    }
    _allObj = setData(data)
    getObjData(_allObj)
    return {
      Obj: _allObj,
      arr: _allArr
    }
  }


//引用
const arr1 = regroupCascaderData(
            32,
            this.options,
            "label",
            "value",
            "children"
          );
console.log(arr1['arr'],"==========");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值