2016-03-30 14 views
0

Ich bin in einer Situation, in der ich nicht in der Lage bin, die Logik zu bekommen, diesen Algorithmus vorzubereiten, wie zu tun.Wie bekomme ich den Wert der nächsten Iteration in der aktuellen Iteration

I Sequenz von Bildern haben haben Pfeil zwischen jedem Bild alternatively.Like dies: Image - > Image - > Image - > Image

Wo diese Pfeile sind auch Bilder von Pfeil mit Summenwert über sie. Nun muss ich den Wert des Bildes im vorherigen Pfeil anzeigen (natürlich hat das erste Bild keinen vorherigen Pfeil, also müssen wir uns mit dem nächsten Bildwert (Bild an dritter Position) befassen, um seinen Wert auf dem vorherigen Pfeil anzuzeigen (Pfeilbild an zweiter Position))

Von hier aus werden wir Bildpfad und Werte (Es tut mir leid, wenn json ist nicht korrekt, aber bitte darauf konzentrieren, was ich versuche zu wissen)

[{imagename1: "[email protected]", image1Value1:"[email protected]"},{imagename2: "[email protected]", image1Value2:"[email protected]"},{imagename3: "[email protected]", image1Value3:"[email protected]"},{imagename4: "[email protected]", image1Value4:"[email protected]"},{imagename5: "[email protected]", image1Value5:"[email protected]"}, {imagename6: "arrowimage6.png", image1Value6:"[email protected]"},{imagename7: "[email protected]", image1Value7:"[email protected]"}, {imagename8: "[email protected]", image1Value8:"[email protected]"}] 

und hier ist das, was ich will, erreichen haben: http://prntscr.com/am3337

Siehe hier JSON, in dem ich Logik implementieren muss:

$(json).each(function(i, val) //here i receive all images 
    { 
     var counter=1; 

       $.each(val, function(key, val) //this value is the value contained about arrow image 
       { 
         var splitted = val.split('@'); 
         var iamgename=splitted[0];//first parameter 
         var imageValue=splitted[1];//second paremeter 

         //how to get the next iteration value on current iteration (lets say if i am on second iteration , how can i get the third iteration image value here) 
       } 
     } 

Meine Frage ist, wie kann ich den Wert der aktuellen Iteration speichern, um auf dem vorherigen Pfeilbild anzuzeigen. (Das Display Teil kann ich selbst tun). Aber das Problem ist, sagen wir zum Beispiel, ich bin unter der dritten Wiederholung der Schleife $.each(val, function(key, val){}. Jetzt bei der dritten Iteration habe ich splitted[0]="image3.png" und splitted[1]="imValue3", um imValue3 oben zu zeigen, ist arrowimage2.png etwas schwierig (wie man eine Wiederholung zurückgeht, die den gegenwärtigen Iterationswert speichert?). Oder eine andere Lösung könnte sein, dass man bei der zweiten Iteration versucht, den Wert der dritten Iteration zu erhalten (ich hätte es wie diesen Wert [i + 1] machen können, wenn es für die Schleife war, wo i = 2 ist, kann ich immer noch den Wert von i erhalten = 3 um ein Inkrement, aber ich weiß nicht, wie man es in $.each(val, function(key, val){} Schleife macht) Gibt es irgendeine Idee, könnte mir jemand vorschlagen, dieses Problem zu überwinden?

+0

ist Ihr 'JSON' ähnlich einem' HTML' wie ''? – ameenulla0007

+0

json ist wie folgt: [{imagename1: "image1.png", image1Value1: "imValue1"}, {bildname2: "pfeilbild2.png", image1Value2: "arrValue2"}, {bildname3: "image3.png", image1Value3: "imValue3"}, {bildname4: "pfeilbild4.png", image1Value4: "arrValue4"}, {bildname5: "bild5.png", bild1Value5: "imValue5"}, {bildname6: "pfeilbild6.png", bild1Value6: "arrValue6 "}, {imagename7:" image7.png ", image1Value7:" imValue7 "}, {imagename8:" arrowimage8.png ", image1Value8:" arrValue8 "}] (es tut mir leid, wenn ich Sie falsch interpretiere) – struggling

+0

und ich zeige Bilder an Erzeugen von HTML wie diese stringbuilder.push ('

"' + splitted[2] + '"
'); $ ('# imageDivs'). Append (stringbuilder.join ('')); – struggling

Antwort

0

Eine Möglichkeit, den Wert speichern könnte es mit dem äußeren Umfang der Funktion zuweisen, so dass Sie immer überschrieben werden könnte, sobald Sie es verwendet var outerScope = 'some initializing' function blub{ process outerScope //maybe you want to check its initializing value on first Iteration outerScope = myNewValue }

+0

Entschuldigung, ich verstehe wirklich nicht, was du meinst? Könntest du es bitte meinem Beispiel von Bildnamen bei teilen [0] und Wert geteilt [1] und wie erhält man den Wert des nächsten Split [1] bei der aktuellen Iteration? oder gib mir bitte ein beispiel und erkläre das damit ich es gut verstehe? – struggling

1
var json = [{imagename1: "image1.png", image1Value1:"imValue1"},{imagename2: "arrowimage2.png", image1Value2:"arrValue2"},{imagename3: "image3.png", image1Value3:"imValue3"},{imagename4: "arrowimage4.png", image1Value4:"arrValue4"},{imagename5: "image5.png", image1Value5:"imValue5"}, {imagename6: "arrowimage6.png", image1Value6:"arrValue6"},{imagename7: "image7.png", image1Value7:"imValue7"}, {imagename8: "arrowimage8.png", image1Value8:"arrValue8"}]; 

var counter = 1; 
$(json).each(function(i, val) { 
    var nextImageName = json[counter]["imagename"+(counter+1)]; //your next image content is here. 
    $.each(val, function(key, newVal) { 
     var splitted  = newVal.split('@'); 
     var iamgename  = splitted[0]; 
     var imagecontent = splitted[1]; 
    }); 
    counter++; 
}); 

hier ist es, die Linie var nextImageName = json[counter]["imagename"+(counter+1)]; zurückkehren Sie mit Ihrem nächsten sich wiederholenden Bildpfad.

+0

Danke für die Antwort, ich werde es morgen testen mornign wird dich als Antwort markieren, wenn es funktioniert :) – struggling

+0

aber bitte beachte, dass dieser "Bildname" nicht in allen Untersätzen von json in dieser Zeile gleich ist "json [counter] [" Bildname "+ (Zähler + 1)]". Es ist wie Bildname1, Bildname2, Bildname3..und so weiter. – struggling

+0

yup, ich glaube, das würde funktionieren, wenn du etwas Salz fühlen möchtest, werden wir es tun .. :) – ameenulla0007

Verwandte Themen