2009-03-19 7 views
1

Ich habe eine Funktion (die ich nicht ändern kann), die Abfragen von Daten aus einer Datenbank und gibt sie in einer Variablen, die als das folgende Format zeigt, wenn ich es als Text angezeigt werden:Javascript Array Konvertierungen

var outputdata= 
    [ 
     { itemA: 'M0929', itemDate: new Date(1950,03-1,25,0,0,0,0), itemID: 'JDR12' }, 
     { itemA: 'X0121', itemDate: new Date(1983,07-1,07,8,0,0,0), itemID: 'RPN50' }, 
     { itemA: 'U0229', itemDate: new Date(1942,09-1,07,8,0,0,0), itemID: 'CRG98' }, 
    ]; 

Ich muss es in das folgende Format konvertieren (bestimmte Datumsformatierung spielt keine Rolle) für die Verwendung durch eine andere Funktion (die ich auch nicht ändern kann).

var inputdata=[ 
     [ 
      "M0929", 
      "1950-03-25", 
      "JDR12" 
     ], 
     [ 
      "X0121", 
      "1983-07-07", 
      "RPN50" 
     ], 
     [ 
      "U0229", 
      "1942-09-07", 
      "CRG98" 
     ] 
    ]; 

Könnte jemand etwas Unterstützung bieten ... Ich verstehe nicht wirklich JavaScript-Arrays und ich bin wirklich nach einer Funktion, um die Konvertierung zu tun.

+0

Dank für die Antworten - ich werde einige von ihnen ausprobieren. Nein, es ist keine Hausaufgabe ... Sie müssen nur Daten aus einem System mit ihrer Datenbankfunktion und in ein dhtmlxGrid-Steuerelement holen. –

Antwort

4

Du wirst wahrscheinlich, es selbst zu schreiben zu haben, zum Beispiel:

function pad (what) 
{ 
    return what < 10 ? '0'+what : String(what); 
} 
function transformData (data) 
{ 
    var result = []; 
    for (var i=0;i<data.length;++i) 
    { 
     var date = data[i]['itemDate']; 
     result.push([ 
      data[i]['itemA'], 
      date.getFullYear()+'-'+pad(date.getMonth())+'-'+pad(date.getDate()), 
      data[i]['itemID'] 
     ]); 
    } 
    return result; 
} 

var outputdata= 
    [ 
     { itemA: 'M0929', itemDate: new Date(1950,03-1,25,0,0,0,0), itemID: 'JDR12' }, 
     { itemA: 'X0121', itemDate: new Date(1983,07-1,07,8,0,0,0), itemID: 'RPN50' }, 
     { itemA: 'U0229', itemDate: new Date(1942,09-1,07,8,0,0,0), itemID: 'CRG98' }, 
    ]; 

var result = transformData(outputdata); 

alert(result.join("\n")); 

Nun, um die Dinge sind Daten die Art der UTC bewusst zu sein. Weitere Details finden Sie hier http://www.w3schools.com/jsref/jsref_obj_date.asp. Außerdem empfehle ich dringend, mehr über Javascript im Allgemeinen zu lesen.

+0

Es ist besser, auf Hausaufgabenfragen zu warten, anstatt nur für sie zu tun. – MarkusQ

+0

Wenn eine Person (nicht unbedingt dieser Typ) heute etwas Nützliches im Internet lernt, wird es ein guter Tag sein. – Jotham

1
function convert(outputdata){ 
    var arr = []; 
for(var i = 0; i<outputdata.length; i++){ 
    var output = outputdata[i]; 
    var temp = [output.itemA, output.itemDate, output.itemID]; 
    arr[i] = temp; 
} 
return arr; 
} 

Editiert: initialisiert arr.

+0

Es ist besser, auf Hausaufgabenfragen zu warten, anstatt nur für sie zu tun. – MarkusQ

+0

Ton. Wird in Zukunft aufpassen. Für diesen Beitrag kann nicht viel tun. Auch wenn ich es lösche, gibt es Revisionen. –

+0

Es gibt einen Unterschied zwischen einer Anfängerfrage und Hausaufgaben. Ich denke, das OP ist einfach nicht in JavaScript und/oder Programmierung versiert, aber es klingt wie ein echtes Problem. –

0

Keine vollständige Antwort, weil das wie Hausaufgaben riecht (und wenn ja, sollten Sie es als solches markieren). So deutet zuerst:

  • Sie einen Array, indem er etwas machen können wie `[7, 9 * 7, "ho"]
  • Sie auf Eigenschaften mit Punktnotation erhalten können wie obj.itemA
+0

Mittelmann = Hausaufgaben? Ziemlich die Annahme. Und der "warne die Massen" wiederholte Kommentar ist übertrieben, Mann. –

+0

Es hörte sich nach Hausaufgaben an, weil 1) es einfach genug ist, dass jemand, der in _einer_ Sprache programmieren kann, es in weniger Zeit als hier veröffentlichen kann, 2) mit willkürlichen "nahen" Grenzen, die er nicht ändern darf 3) geschrieben von einem brandneuen Benutzer und 4) ... Sie bekommen die Idee – MarkusQ

Verwandte Themen