-2
트리 데이터 구조 또는 그래프로 배열의 목록을 변환 :자바 스크립트 기능이 내가 문자열 배열의 목록을 가지고
[FT, LW ,VN ]
[FT ,LW ,NV ]
[FT ,LL ,VN ]
[FT ,LL ,NV ]
[EM ,FT ,LW ]
[EM ,FT ,LL ]
누군가가 이러한 배열을 처리하고를 만드는 자바 스크립트 함수 좀 도와 주실 래요 트리 또는 구조 같은 그래프. 같이해야하는 최종 출력은 다음과 같습니다
FT
LW LL
NV,VN,EM VN,NV,EM
나는이 기능을 시도하지만, 문제가 될 것 같다입니다. 나는 나무를 시작하는 2 개의 길을 얻는다. FT 및 EM.
function convertToHierarchy(arry/* array of array of strings */) {
var item, path;
// Discard duplicates and set up parent/child relationships
var children = {};
var hasParent = {};
for (var i = 0; i < arry.length; i++) {
var path = arry[i];
var parent = null;
for (var j = 0; j < path.length; j++) {
var item = path[j];
if (!children[item]) {
children[item] = {};
}
if (parent) {
children[parent][item] = true; /* dummy value */
hasParent[item] = true;
}
parent = item;
}
}
// Now build the hierarchy
var result = [];
for (item in children) {
if (!hasParent[item]) {
result.push(buildNodeRecursive(item, children));
}
}
return result;
}
function buildNodeRecursive(item, children) {
var node = {
id : item,
children : []
};
for (var child in children[item]) {
node.children.push(buildNodeRecursive(child, children));
}
return node;
}
감사합니다.
SO는 무료 코딩 서비스가 아닙니다. 당신은 혼자서 몇 가지 시도를해야만합니다. 문제가 발생하면 도와 드리겠습니다. – Barmar
그 점을 이해합니다. 감사합니다. 재귀를 사용하여 트리 구조를 만들려고했지만 그다지 제대로 작동하지 않습니다. – user3084985
EM이 왜 LW 아래에 있습니까? –