2013-03-05 16 views
5

Ich habe zwei Arrays, die ich versucht drittezwei Arrays vergleichen und erstellen dritte

mein erstes Array zu vergleichen und zu erstellen:

sevenDays = ["04","05","06","07","08","09","10"]; 

meine zweite Array:

json[0] = [Object{day="04",value="5"}, Object { day="05",value="8"}, Object { day="09",value="9"}] 

was Ich versuche zu bekommen ist:

[[04,5],[05,8],[06,0],[07,0],[08,0],[09,9],[10,0]] 

Ich mag versucht, diese

var desiredArray= [];       
$.each(sevenDays, function (i, v) { 
    val= 0; 
    if (json[0][i].value) val = json[0][i].value; 
    desiredArray[i] = [v, val] 
}); 


[[04,5],[05,8],[06,9],[07,0],[08,0],[09,0],[10,0]] //output 
+0

sollten Sie eine http://jsfiddle.net/ für einfache Tests erstellen. –

Antwort

5

Sie sind zur Zeit den Wert aus dem Index i in sevenDays zur value Eigenschaft des Objekts bei Index i von json[0] zu vergleichen, aber das ist nicht richtig, weil der Auftrag auf nicht übereinstimmt. Der Wert für 09 ist bei Index 2 in json[0], aber 09 ist bei Index 5 in sevenDays.

Sie werden über sevenDays laufen müssen, und für jede Iteration Iterierte über json[0] das passende Objekt zu finden, etwa so:

var desiredArray = []; 

$.each(sevenDays, function (i, day) { 
    val = 0; 
    $.each(json[0], function(j, value) { 
     if(day == value.day) 
      val = value.value; 
    }); 
    desiredArray[i] = [day, val]; 
}); 

einen Blick auf this working demo nehmen.

+0

Ich habe es jetzt :). vielen Dank! (Jeder sollte kein Problem sein?) – InTry

+0

@InTry Verschachtelte 'each'-Funktionen werden keine Probleme verursachen, vorausgesetzt, Sie wählen eindeutige Variablennamen aus, um Verschattung zu vermeiden. –

0

unter Berücksichtigung Ihrer zweiten Array in der richtigen json-Format ....

Sie können es tun, wie diese

var data[] =["",""] 
for(value in sevenDays) 
{ 
for(Object in json[0]) 
{ 
if(Object.hasOwnProperty(data[value]) 
{ 
    // do ur stuff here :) 
} 
else 
{ 
    //do the other stuff here :) 
} 
} 
} 
+0

Die 'for (x in y)' -Syntax dient zum Iterieren über Eigenschaften von Objekten, nicht über Arrays. –

+0

hat es bearbeitet ... jetzt wird das funktionieren ... – 1and0

Verwandte Themen