2017-06-26 1 views
1

Wie bekomme ich alle Pfade zu Baumblättern mit Javascript?Wie bekomme ich alle Pfade zu Baumblättern mit Javascript?

Ich habe versucht, das arboreal-Paket zu verwenden, aber ich könnte es einfach zu einem Array oder etwas ähnliches analysieren, wenn es hilft.

sieht Meine Daten wie folgt aus:

 1 
    /\ 
    2 3 
//\ 
    4 6 5 
/
7 

ich eine Ausgabe wie diese erhalten möchten:

[1,2,4,7], [1,3,6] [1,3,5]

+1

Was wirklich nicht Ihre Eingabe aussehen? Was hast du bisher versucht? – Erazihel

+0

echte Eingabe ist zu kompliziert, aber aufgeschlüsselt sieht so aus. später möchte ich einige Werte der Knoten bekommen und sie zusammenfassen. Was genau willst du über den Input wissen? – Florian

+0

Ich kann Ihnen nicht sagen, wie Sie eine Ausgabe erhalten, ohne die Eingabe zu kennen. – Erazihel

Antwort

1

Sie könnten alle Knoten aufrufen, und wenn der Knoten keine weiteren untergeordneten Elemente enthält, können Sie den tatsächlichen Pfad in der Ergebnismenge speichern.

function getPath(object) { 
 
    function iter(o, p) { 
 
     var keys = Object.keys(o); 
 
     if (keys.length) { 
 
      return keys.forEach(function (k) { 
 
       iter(o[k], p.concat(k));   
 
      }); 
 
     } 
 
     result.push(p); 
 
    } 
 
    
 
    var result = []; 
 
    iter(object, []); 
 
    return result; 
 
} 
 

 
var object = { 1: { 2: { 4: { 7: {} } }, 3: { 6: {}, 5: {} } } }; 
 

 
console.log(getPath(object));
.as-console-wrapper { max-height: 100% !important; top: 0; }

Verwandte Themen