js 将相同的路径提取出来,将不相同的路径也单独提取出来
时间: 2024-09-16 11:04:00 浏览: 27
在JavaScript中,如果你想既提取出所有相同的路径,又将不相同的路径分开,你可以使用`Map`或者`Set`来存储每一条独特的路径。以下是基于这两种数据结构的一个示例:
```javascript
function separateUniquePaths(routes) {
const pathsMap = new Map(); // 用于存储唯一的路径
const uniquePaths = []; // 存储唯一路径
const differentPaths = []; // 存储不同的路径
routes.forEach((route) => {
route.pathList.forEach((path) => {
if (pathsMap.has(path)) {
// 如果路径已存在,说明是相同的,加到uniquePaths中
uniquePaths.push(path);
pathsMap.set(path, true); // 标记为已存在
} else {
// 如果路径不存在,说明是不同的,加到differentPaths中
differentPaths.push(path);
pathsMap.set(path, false); // 标记为唯一
}
});
});
return { commonPaths: uniquePaths, distinctPaths: differentPaths };
}
let result = separateUniquePaths(routesData);
console.log('相同路径:', result.commonPaths);
console.log('不同路径:', result.distinctPaths);
```
这个函数遍历每个路线的所有路径,如果路径已经在`Map`中,则认为它是相同的,添加到`uniquePaths`;如果不在,则视为不同的,添加到`differentPaths`。
阅读全文