首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JS 递归 数组嵌套回显

JS 递归 数组嵌套回显

作者头像
我不是费圆
发布2022-05-09 14:46:11
3.8K0
发布2022-05-09 14:46:11
举报
文章被收录于专栏:鲸鱼动画鲸鱼动画

第一种:

// 查询部门信息
			seeBranch(data,id){
				function find(data, fn, result) {
				 data.forEach(item => {
					if(item.id===id){
						result.push(item)
					}else if (item.children.length>0) {
					 find(item.children, fn, result)
					} else {
					 if (fn(item)) {
						result.push(item)
					 }
					}
				 })
				}
				const result = []
				find(data, item => {
				 return item.id === id //查找的字段
				}, result)
				// console.log(result)
				return result.length>0?result[0].name:''
			},

第二种:

// 数组常量
const list = [
  {
    "value": 192,
    "label": "技术部",
    "children": [
      {
        "value": 193,
        "label": "软件组",
        "children": [
          {
            "value": 195,
            "label": "软件一组"
          },
          {
            "value": 196,
            "label": "软件二组"
          }
        ]
      },
      {
        "value": 198,
        "label": "运维组"
      }
    ]
  },
  {
    "value": 200,
    "label": "财务部",
    "children": [
      {
        "value": 201,
        "label": "会计"
      },
      {
        "value": 203,
        "label": "出纳"
      }
    ]
  },
  {
    "value": 300,
    "label": "人资部",
    "children": [
      {
        "value": 301,
        "label": "行政"
      },
      {
        "value": 302,
        "label": "人资"
      }
    ]
  }
]

// 计算方法
function recursionGet(setValues, valueId) {
  let value = null;
  for (let index = 0; index < setValues.length; index += 1) {
    if (setValues[index].value === valueId) {
      value = setValues[index].label;
      break;
    }
    if (setValues[index].children instanceof Array && setValues[index].children.length > 0) {
      const text = recursionGet(setValues[index].children, valueId);
      if (text)
        return text;
    }
  }
  return value;
}

// 输出打印
const data =recursionGet(list,301)
console.log(data) // 输出 行政

第三种:

  // 定义变量
   let arr = [
	  {id:1213,arr:[
		  {id:1212,arr:[
			  {id:2343,arr:[
				  {id:3434,arr:[1,2,3]}
			  ]}
		  ]}
	  ]}
    ]
	// 父级结构数组
	let val = [1213,1212,2343,3434];
	
	// 递归函数
	!function task(){
		let ary = 0;
		for(let i of arr){
			if(i.id===val[ary]){
				arr = i.arr;
				ary++;
				if(i.arr.length===3){
					console.log('找到了',arr);
					break;
				}else{
					task();
				}
			}else{
				console.log('没找到');
				break;
			}
		}
	}();
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-03-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档