| | |
| | | std.push(dir); |
| | | } |
| | | } |
| | | |
| | | var str = []; |
| | | |
| | | for (var i in std) { |
| | | let dir = std[i].split('/'); |
| | | for (var j = 1; j < dir.length; j++) { |
| | | if (j == 1) { |
| | | var clabel = dir[0] + "/" + dir[j] |
| | | let f_val = res.filter((rs) => { |
| | | if (rs.label === dir[j - 1]) { |
| | | return rs; |
| | | if (dir.length > 1) { |
| | | for (var j = 1; j < dir.length; j++) { |
| | | if (j == 1) { |
| | | var clabel = dir[0] + "/" + dir[j] |
| | | let f_val = res.filter((rs) => { |
| | | if (rs.label === dir[j - 1]) { |
| | | return rs; |
| | | } |
| | | }) |
| | | var c_Data = str.filter(rs => { |
| | | if (rs.bak == clabel) { |
| | | return rs; |
| | | } |
| | | }) |
| | | if (f_val.length != 0 && c_Data.length == 0) { |
| | | num++; |
| | | var val = { |
| | | id: num, |
| | | pid: f_val[0].id, |
| | | label: dir[j], |
| | | bak: clabel |
| | | } |
| | | str.push(val) |
| | | } |
| | | }) |
| | | var c_Data = str.filter(rs => { |
| | | if (rs.bak == clabel) { |
| | | return rs; |
| | | } |
| | | }) |
| | | if (f_val.length != 0 && c_Data.length == 0) { |
| | | num++; |
| | | var val = { |
| | | id: num, |
| | | pid: f_val[0].id, |
| | | label: dir[j], |
| | | bak: clabel |
| | | } |
| | | str.push(val) |
| | | } |
| | | |
| | | } else { |
| | | var clabel1 = dir[0] |
| | | for (var k = 1; k < j; k++) { |
| | | clabel1 = clabel1 + "/" + dir[k]; |
| | | } |
| | | var f_val = []; |
| | | for (var w in str) { |
| | | if (str[w].label == dir[j - 1]) { |
| | | if (str[w].bak == clabel1) { |
| | | f_val.push(str[w]) |
| | | } else { |
| | | var clabel1 = dir[0] |
| | | for (var k = 1; k < j; k++) { |
| | | clabel1 = clabel1 + "/" + dir[k]; |
| | | } |
| | | var f_val = []; |
| | | for (var w in str) { |
| | | if (str[w].label == dir[j - 1]) { |
| | | if (str[w].bak == clabel1) { |
| | | f_val.push(str[w]) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | var clabel2 = clabel1 + "/" + dir[j] |
| | | var c_Data = str.filter(rs => { |
| | | if (rs.bak == clabel2) { |
| | | return rs; |
| | | var clabel2 = clabel1 + "/" + dir[j] |
| | | var c_Data = str.filter(rs => { |
| | | if (rs.bak == clabel2) { |
| | | return rs; |
| | | } |
| | | }) |
| | | if (f_val.length != 0 && c_Data.length == 0) { |
| | | num++; |
| | | var val = { |
| | | id: num, |
| | | pid: f_val[0].id, |
| | | label: dir[j], |
| | | bak: clabel2 |
| | | } |
| | | str.push(val) |
| | | } |
| | | }) |
| | | if (f_val.length != 0 && c_Data.length == 0) { |
| | | num++; |
| | | var val = { |
| | | id: num, |
| | | pid: f_val[0].id, |
| | | label: dir[j], |
| | | bak: clabel2 |
| | | } |
| | | str.push(val) |
| | | } |
| | | } |
| | | } else { |
| | | num++; |
| | | var val = { |
| | | id: num, |
| | | pid: -1, |
| | | label: dir[0], |
| | | bak: dir[0] |
| | | } |
| | | str.push(val) |
| | | |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | return str |
| | |
| | | var str = []; |
| | | for (var i in result) { |
| | | var dir = result[i].bak.split('/'); |
| | | var f_filter = dataFilter(std, dir[0]); |
| | | if (f_filter.length == 0) { |
| | | std.push(dir[0]) |
| | | num++ |
| | | str.push({ |
| | | id: num, |
| | | pid: -1, |
| | | label: dir[0] |
| | | }) |
| | | if (dir.length > 1) { |
| | | var f_filter = dataFilter(std, dir[0]); |
| | | |
| | | if (f_filter.length == 0) { |
| | | std.push(dir[0]) |
| | | num++ |
| | | str.push({ |
| | | id: num, |
| | | pid: -1, |
| | | label: dir[0] |
| | | }) |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | return str; |
| | | } |
| | | //遍历匹配获取数据 |
| | | function dataFilter(result, bak) { |
| | | let val = result.filter(res => { |
| | | |
| | | if (res == bak) { |
| | | return res; |
| | | } |
| | | }) |
| | | |
| | | return val; |
| | | } |