2016-04-03 7 views
-1

Ich habe ein Array, das leere Felder hat. Particulary es sieht aus wie folgt:
JavaScript - Reverse Array mit leerem Feld und fügen Sie es dem alten Array

array() {[4] => 3,[8] => 6,[17] => 24} 

ich es auf diese Weise bin mit, weil ich mit ihm ein Diagramm bin Zeichnung. Also für ein Beispiel: bei 4cm hat das Diagramm eine Höhe von 3cm. Und so weiter.

Jetzt ist das Problem, dass die Formel nur die Hälfte der Werte berechnet, da der zweite Teil des Diagramms nur gespiegelt wird. Also muss ich den letzten Teil des Arrays entfernen und dann den Rest umkehren, während ich den Abstand zu dem entfernten Wert im ursprünglichen Array beibehalte.
Ich brauche einen Algorithmus, der das für mich berechnen kann.

array() {[26] =>6, [30] => 3} 
+1

Ich verstehe nicht den Prozess, mit dem Sie das erste Array in das zweite umwandeln. Woher kommen 26 und 30? –

Antwort

0

Ich denke, ein Array kein großer Datentyp für diese, da Sie möglicherweise in es Tausende von undefined Werte haben könnten, aber mit den fehlenden Werten des Arrays Füllung ist ziemlich einfach. Sie durchqueren das Array nur rückwärts und drücken die gefundenen Werte auf das Array.

var ar = [/*your input*/]; 

/* ar.length-1 would be the last position of your array 
    so you want to go from position ar.lenght-2 */ 
for (var i = ar.length-2;i>=0;i--){ar.push(ar[i])} 

Es wäre besser, stattdessen ein Objekt zu verwenden, so dass Sie mit den wichtigsten Wert-Paare repräsentieren Ihre Graph Knoten arbeiten.

0

nicht sicher, ob es perfekt funktioniert, aber folgen Sie der Logik. Lassen Sie uns sagen, dass Ihr ursprüngliches Array a ist.

Zuerst kehren Sie das ursprüngliche Array um und entfernen das erste Element (das das letzte Element des ursprünglichen Arrays ist). Concattieren Sie dann das Originalfeld mit dem Nullwert (löschen Sie alle Werte, Sie können nicht definierte oder andere Werte füllen) mit der umgekehrten. Boom, du bekommst dein neues Array.