export function filterCodes(areaCodes, tree) {
  const areaCodesSet = new Set(areaCodes);
  const arr = tree.filter(item => areaCodesSet.has(item.id));
  arr.forEach(item => {
    if (item.children) {
      const curr = filterCodes(areaCodes, item.children);
      item.children = curr;
    }
  });
  return arr;
}

export function extractPaths(data) {
  let paths = [];
  // 递归函数以当前节点和已累积的路径作为参数
  function traverse(node, currentPath) {
    // 将当前节点的ID加入路径
    currentPath.push(node.id);
    // 如果当前节点有子节点，递归遍历子节点
    if (node.children && node.children.length > 0) {
      node.children.forEach(child => traverse(child, currentPath.slice()));
    } else {
      // 如果当前节点是叶子节点，保存当前路径
      paths.push(currentPath);
    }
  }
  // 遍历数据中的每一个根节点
  data.forEach(rootNode => traverse(rootNode, []));
  return paths;
}
