js 统计树形组织架构人员数量

news/2024/11/14 11:53:55/文章来源:https://www.cnblogs.com/hong1/p/18545687

组织架构树形数据,且存在一个人员在多公司/或部门计数重复问题

// 统计组织架构内人员数量
const countNodesProperty = (treeItemData, propertyName, propertyValue) => {let count = 0const userArr = []const traverse = nodes => {nodes.forEach(node => {if (node[propertyName] === propertyValue) {// 当前公司/部门内无此人员时,再计数。解决人员在多公司/部门时计数重复问题if (!userArr.find(item => item.id === node.id)) {count++}userArr.push(node)}if (node.childList && node.childList.length) {traverse(node.childList)}})}traverse([{ ...treeItemData }])return count
}
// 操作树形数据
const handleTreeData() {// 组织架构树形数据const treeData= [{id: '1',name: '总公司',type: '1', // 1 公司, 2 部门,3 人员parentId: '0',childList: [{id: '2',name: '上海公司',type: '1',parentId: '1',childList: [{id: '2-1',name: '部门1',type: '2',parentId: '2',childList: [id: '2-1-1',name: '张三',type: '3',parentId: '2-1',]},{id: '2-2',name: '部门2',type: '2',parentId: '2',childList: [id: '2-1-1',name: '张三',type: '3',parentId: '2-2',]},]}]}]const handeData = data => {data.forEach(item => {if (item.type !== 3) {item.count = countNodesProperty(item, 'type', 3)}if (item.childList && item.childList.length) {handeData(item.childList)}})}handeData(treeData)
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/833359.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库字段设置非空, phalcon创建数据验证不通过

在使用phalcon的insert和update功能时,因为数据库所有的字段设置的都是NOT NULL,而phalcon的model在插入或更新之前会自动判断字段是否需要必填,因此导致有空字段时无法存入。 开始遇到这问题时,想到两种解决方法: 一、改数据库字段,把NOT NULL改为可以为空。但该数据库还…

2024年11月中国数据库排行榜:OB连续四月居榜首,腾讯云TDSQL升第九

11月墨天轮排行榜解读新鲜出炉!榜单前五稳中求进,OceanBase连续四月居榜首,第六至十位竞争加剧,此外亦有部分产品焕发活力,一起来看更多排名情况与解读!11月墨天轮社区的中国数据库流行度排行榜已更新,本期共有226个数据库产品参与,相较于年初的292个数据库,产品阵容已…

cmu15545笔记-索引并发控制(Concurrent Indexes)

目录OverviewLock和Latch辨析设计目标大致分类Hash Table LatchesPage LatchesSlot LatchesB+Tree Latches并发问题Latch Crabbing/CoupingOptimistic Coupling(乐观锁)Leaf Node Scan Overview Lock和Latch辨析Lock:抽象的,逻辑的,整体统筹 Latch:具体的,原语性的,自我…

cmu15545笔记:索引并发控制(Concurrent Indexes)

目录OverviewLock和Latch辨析设计目标大致分类Hash Table LatchesPage LatchesSlot LatchesB+Tree Latches并发问题Latch Crabbing/CoupingOptimistic Coupling(乐观锁)Leaf Node Scan Overview Lock和Latch辨析Lock:抽象的,逻辑的,整体统筹 Latch:具体的,原语性的,自我…

cmu15545-索引并发控制(Concurrent Indexes)

目录OverviewLock和Latch辨析设计目标大致分类Hash Table LatchesPage LatchesSlot LatchesB+Tree Latches并发问题Latch Crabbing/CoupingOptimistic Coupling(乐观锁)Leaf Node Scan Overview Lock和Latch辨析Lock:抽象的,逻辑的,整体统筹 Latch:具体的,原语性的,自我…

向量动态量化

本文介绍向量检索服务DashVector动态量化功能和作用。 背景介绍 量化(Quantization)是向量检索技术中一种常用的优化方法,通过一定程度的精度(召回率)损失,来换取性能的大幅度提升,以及内存占用(索引文件大小)大幅度降低。 向量检索服务DashVector支持向量的动态量化,…

从零到一构建并打包 React + TypeScript + Less组件库教程(一、项目初始化搭建+代码规范集成)

本系列涉及的内容如下:组件库基础搭建,react + ts + less 项目规范,包括但不限于 prettier、eslint、stylelint、husky、lint-staged、commitlint pnpm monorepo + turborepo 集成 gulp + webpack 构建 esm、cjs 和 umd storybook 文档集成此系列不包含发布 npm 和构建 CI 流…

分区Partition

理解Partition 向量检索服务DashVector的Collection具有分区(Partition)的能力,同一个Collection下的Doc可通过不同的Partition进行物理和逻辑上的分区。各种Doc操作(如插入Doc、检索Doc等。若指定Partition,则该操作将限定在该指定的Paritition内进行。通过合理的Partiti…

PGsql 大写字段名,flink目前不支持读取

flink1.20 连接 postgres_flink postgresql-CSDN博客[FLINK-23324] Postgres of JDBC Connector enable case-sensitive. - ASF JIRA

成本减半 + 效率翻倍:这家企业用 11 天实现数据处理飞跃

伴随着云计算和数字化浪潮的推进,越来越多行业数据实时性的权重正在被加速提升,对企业而言,如果想要保证业务的持续发展,其底层数据库必须要能满足数据的实时性和高并发要求。 除此之外,在降本增效的大潮下,“高性价比”也成为企业选择一款数仓的重要因素。 那么,企业应…

Windows激活神器HEU KMS Activator v42.3.1

软件介绍 HEU KMS Activator,简洁高效的全能KMS/OEM激活工具,适用所有Windows, Office版本,无需联网即可一键激活,支持UEFI的KMS激活工具。KMS服务是微软对Windows, Office等产品的批量许可服务,利用KMS可以激活局域网内的产品。该工具利用KMS机制在系统搭建KMS服务器,从…

如何远程实时监控员工的电脑屏幕?60教会你,五个妙招轻松搞定!

https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_9073269535369745774%22%7D&n_type=1&p_from=4 使用远程桌面协议(RDP)远程桌面协议(RDP)是一种允许用户远程连接到另一台计算机的技术。通过配置RDP,管理员可以实时访问员工的…