| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 
							- // 获取所有的叶子节点
 
- export const getLeafNodes = (tree) => {
 
-   const leafNodes = []
 
-   function traverse(node) {
 
-     if (!node.children || node.children.length === 0) {
 
-       leafNodes.push(node)
 
-     } else {
 
-       for (let child of node.children) {
 
-         traverse(child)
 
-       }
 
-     }
 
-   }
 
-   // 开始遍历
 
-   if (!tree?.length) return []
 
-   for (let rootNode of tree) {
 
-     traverse(rootNode)
 
-   }
 
-   return leafNodes
 
- }
 
- // 获取所有二级节点
 
- export const getSecondNodes = (tree) => {
 
-   let nodes = []
 
-   for (const rootNode of tree) {
 
-     if (rootNode.children?.length) nodes = [...nodes, ...rootNode.children]
 
-   }
 
-   return nodes
 
- }
 
- // 找到数组中第一对重复的元素并返回元素及元素在原数组的下标
 
- export const findFirstDuplicateWithIndices = (arr) => {
 
-   const elementIndices = new Map();
 
-   for (let i = 0; i < arr.length; i++) {
 
-     const element = arr[i];
 
-     if (elementIndices.has(element)) {
 
-       // 如果元素已经在 elementIndices 中,返回元素和它的两个下标
 
-       return {
 
-         element: element,
 
-         firstIndex: elementIndices.get(element),
 
-         secondIndex: i
 
-       };
 
-     } else {
 
-       // 如果元素不在 elementIndices 中,存储它的下标
 
-       elementIndices.set(element, i);
 
-     }
 
-   }
 
-   // 如果没有找到重复元素,返回 null 或其他表示未找到的值
 
-   return null;
 
- }
 
 
  |