以下是一个树形菜单,求出年龄最大的那一位和年龄最小的哪一位

let tree = {name: '老板',age: 46,children: [{name: '经理1',age: 36,children: [{name: '主管1',age: 25,children: [{name: '员工1',age: 20,children: []},{name: '员工2',age: 18,children: []},{name: '员工3',age: 23,children: []}]},{name: '主管2',age: 30,children: []}]},{name: '经理2',age: 38,children: []},{name: '经理3',age: 48,children: []},]}

在写之前先把思路想好,个人思路是:是将每一项的数据都放在一个数组中,然后用排序对数组进行操作,之后就求出最大和最小的数据。

代码如下

    //首先先创建一个空数组,用来存放每一位人员的数据let ageArr = [];//递归将每一个人员的数据添加到数组中function getMaxAge(tree){//首先来判断传来的数据是不是对象如果是就push进数组if(Object.prototype.toString.call(tree) === '[object Object]'){ageArr.push(tree)}//接着来判断children是否有数据,如果有就循环children调用getMaxAgeif(tree?.children.length){tree.children.forEach(item => {getMaxAge(item)})}}//调用方法getMaxAge(tree) //此时ageArr数组里面存储的是每一位人员的数据,用年龄进行从小到大排序let newAge = ageArr.sort((a, b) => a.age - b.age)//排序完成,就可以打印了console.log(`最大年龄是${newAge[newAge.length - 1].name}, ta的年龄是${newAge[newAge.length - 1].age}`);console.log(`最小年龄是${newAge[0].name}, ta的年龄是${newAge[0].age}`);

js树形菜单求出最大的年龄相关推荐

  1. 打造完美的JS树形菜单

    其实网上现在用JS来实现一个树形的代码多得不成样子了.不过偶觉得这个还算可以的(至少比我第一次写的那个强多了o_o) 我在WEB中JS初始化如下: <  script language  =   ...

  2. div+css+js 树形菜单

    2019独角兽企业重金招聘Python工程师标准>>> 代码: <div class="main_2">    <div class=" ...

  3. Struts2+Hibernate+Spring+ZTree+Dtree 实现树形菜单

    2019独角兽企业重金招聘Python工程师标准>>> 1.第一步配置web.xml <?xml version="1.0" encoding=" ...

  4. vue树形权限菜单_Vue.js 递归组件实现树形菜单(实例分享)

    最近看了 Vue.js 的递归组件,实现了一个最基本的树形菜单. 项目结构: main.js 作为入口,很简单: import Vue from 'vue' Vue.config.debug = tr ...

  5. vue树形权限菜单_Vue.js 递归组件实现树形菜单

    最近看了 Vue.js 的递归组件,实现了一个最基本的树形菜单. main.js 作为入口: import Vue from 'vue' import main from './components/ ...

  6. 定义一个学生类Student,包含三个属性姓名、年龄、性别, 创建三个学生对象存入ArrayList集合中。 A:使用迭代器遍历集合。 B:求出年龄最大的学生,然后将该对象的姓名变为:小猪佩奇。

    Java基础 定义一个学生类Student,包含三个属性姓名.年龄.性别, 创建三个学生对象存入ArrayList集合中. A:使用迭代器遍历集合. B:求出年龄最大的学生,然后将该对象的姓名变为:小 ...

  7. C++剑指offer:[POJ]2631 Roads in the North - 用树形DP的方式求出一棵树的直径

    前言 此题是道很简单的题(做法不单一,不仅只有树形DP的方法) 做完了这道题才发现此题原来是一道求树的直径的题,也就是求树上两个节点的最大距离. 题目 问题 N(2692): [POJ2631]北极地 ...

  8. 动态html树形菜单模板,JS+CSS简易树状菜单Tree

    /p> "http://www.w3.org/TR/html4/loose.dtd"> 树形菜单实例-www.mb5u.com function showhide_ob ...

  9. js实现:函数实现从小到大排列,函数求阶乘计算结果和求出阶乘函数的和

    1.函数实现从小到大排列 // 给出一组数据,要求按照从小到大进行排序. <script> function toLarge(arr_B) {arr_B = arr_B.sort(func ...

最新文章

  1. 【组队学习】【33期】吃瓜教程——西瓜书+南瓜书
  2. at命令不生效 linux_帮你精通Linux:简约却不简单的ls命令
  3. HTTP协议---HTTP请求中的常用请求字段和HTTP的响应状态码及响应头
  4. Centos 6.5 搭建NFS服务器笔记
  5. day 03 selenium与Beautifulsoup4的原理与使用
  6. 下载大文件 不经过php 直接让apache发送文件给客户端 mod_xsendfile
  7. linux-安装jdk
  8. Mybatis中输入输出映射和动态Sql
  9. 绝大部分人根本没有职业素养
  10. JVM初识之垃圾回收机制(GC)
  11. 机器学习——卷积神经网络(CNN)
  12. 学完这些,能做出微信吗?国庆节7天不知道能否撸出来一个,我要试试!!!---酷课堂iOS交流群问答整理(201809期)
  13. vue读取excel表格数据_vue 利用 js-xslx 读取 excel 表格文件
  14. 格鲁夫12年前惊人的预言,解释了今天美国对中国芯片所做的一切
  15. [Darktable]dt源码分析(未完)
  16. sklearn常用工具
  17. GlassFish4安装部署
  18. 前端教程:LAMP是什么意思?做什么的?有什么特点?
  19. 完美世界:影视和游戏,二者为何不可兼得?
  20. Verilog中Case语句

热门文章

  1. uni.showModal
  2. 幽炫蓝牙耳机旗舰版评测
  3. 环境配置(四)——Miniconda 使用教程
  4. 3、【Xilinx下载器】【ILA】使用ILA调试时出错的解决方案
  5. Git 学习札记(二)安装git以及基本操作
  6. 苹果最新机器学习研究,详解「嘿Siri」语音触发器背后的深度神经网络
  7. OPPO Watch与vivo Watch,哪个更值得入手?
  8. 有趣的Windows之一——虚拟机
  9. vue 手写签名_手写Promise/Promise.all/Promise.race(手写系列一)
  10. mark小程序思维图