案例需求:一个多维数组,里面有不同的文件,如.c / .h / .md 文件 ,要实现的效果是,在不改变原多维数组结构的情况下,筛选出想要的文件 , 例:只保留 .c 文件
代码及效果图如下:
//递归处理树状结构(筛选保留.c文件)
export function filterCFiles(data) {
if (Array.isArray(data)) {
return data.reduce((acc, item) => {
//设置自定义筛选条件
if (item.path.endsWith('.c')) {
acc.push(item);
} else if (item.children) {
const filteredChildren = filterCFiles(item.children);
if (filteredChildren.length > 0) {
const newItem = {
...item,
children: filteredChildren,
};
acc.push(newItem);
}
}
return acc;
}, []);
}
return [];
}
//在需要的地方导入 调用即可 ,参数为数组形式