美文网首页
递归遍历

递归遍历

作者: 家有饿犬和聋猫 | 来源:发表于2019-08-20 17:04 被阅读0次

数据加和,使用递归遍历,对任何的子嵌套都有用

let company = { 
  sales: [{name: 'John', salary: 1000}, {name: 'Alice', salary: 600 }],
  development: {
                sites: [{name: 'Peter', salary: 2000}, {name: 'Alex', salary: 1800 }],
                internals: [{name: 'Jack', salary: 1300   }]
  }
};
//用来完成工作的函数
function sumSalaries(department) {
    if (Array.isArray(department)) {
               //prev  加和后的值,    current当前值
        return department.reduce((prev, current) => prev + current.salary, 0);  //求数组的和
    } else {
        let sum = 0;
        for (let subdep of Object.values(department)) {
                 //Object.values   取对象的值
            sum += sumSalaries(subdep);     //递归调用子对象,对结果求和
        }
        return sum;
    }
}
alert(sumSalaries(company));    //6700

相关文章

  • 二叉树遍历

    先序遍历——[递归、非递归] 中序遍历——[递归、非递归] 后序遍历——[递归、非递归] 层次遍历——[递归、非递归]

  • 树的遍历

    节点结构: 先序遍历 递归 非递归 后序遍历 递归 非递归 中序遍历 递归 非递归 层序遍历 类库 有了上述遍历算...

  • 二叉树的遍历

    非递归前序遍历 非递归中序遍历 非递归后序遍历 层序遍历

  • 二叉树三种遍历的实现(递归)

    前序递归遍历算法:访问根结点-->递归遍历根结点的左子树-->递归遍历根结点的右子树 中序递归遍历算法:递归遍历根...

  • 二叉树的前中后三种遍历(递归、非递归和Morris)

    前序遍历 递归版本 非递归版本 中序遍历 递归版本 非递归版本 Morris 遍历待补充 后序遍历 递归版本 非递...

  • 二叉树遍历java,非递归、层次。

    /** * 前序遍历 * 递归 */ /*** 前序遍历* 非递归*/ 后续遍历非递归 二叉树层次遍历基于java...

  • 树的遍历算法

    树的递归遍历 树的层次遍历 树的非递归前序遍历 树的非递归中序遍历

  • 数据结构-树的遍历

    1. 先序遍历 递归实现 非递归实现 2. 中序遍历 递归实现 非递归实现 3. 后序遍历 递归实现 非递归实现 ...

  • 二叉树前、中、后序遍历、层次遍历

    1、前序遍历 非递归:利用Stack实现 递归 2、中序遍历 非递归:利用Stack实现 递归: 3、后序遍历 非...

  • 二叉树遍历

    二叉树的遍历 1. 前序遍历 1.1 递归前序遍历 1.2 非递归前序遍历 2 中序遍历 2.1递归遍历 2.2非...

网友评论

      本文标题:递归遍历

      本文链接:https://www.haomeiwen.com/subject/roipsctx.html