比较两个对象的层级是否一样多

原始数据staticData=[ {value:1,chiledren:[{value:1-1,children:{value:1-1-1}},{value:1-2,children:{value:1-2-1}}]},

                   {value:2,chiledren:[{value:2-1,children:{value:2-1-1}}]},

                  {value:3,chiledren:[{value:3-1,children:{value:3-1-1}}]}

]

结果val={value:2,children:{value:2-1,children:{2-1-1}}}

// 及联下拉value是object类型的 判断原始数据的层级数和选中的层级数

export function cascadeselectAll2 (staticData, val, callback) {

if (!val || val.length === 0) {

callback()

}

const childs = staticData.childs || []

const valArr = []

const fn = (obj) => {

if (obj.value) {

valArr.push(obj.value)

if (obj.children) {

fn(obj.children)

}

}

}

fn(val)

let index = 0

let a = true

const deep = (childs) => {

let childrens = null

let flg = childs.some((item) => {

if (item.value === valArr[index]) {

childrens = item.children

return true

} else {

return false

}

})

if (flg) {

index = index + 1

if (index === valArr.length) {

if (childrens) {

a = false

}

}

if (childrens) {

deep(childrens)

}

}

}

deep(childs)

if (a) {

console.log('asdf', 'a || valArr.length === 0')

callback()

} else {

console.log('asdf', 'Error')

callback(new Error('请重新选择,该选项必须选到最后一层'))

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值