Ich habe ein Array von Objekten, die durch Ziehen von Daten aus einer CSV-Datei erstellt wird. Das Array sieht wie folgt aus (wenn gedruckt).Wie man ein Array von Objekten dynamisch erstellt?
Array[4]
0:Object
value1:"200"
value2:"95"
value3:"6395"
value4:"2"
1:Object
2:Object
3:Object
Die Art, wie ich es erstellt habe, ist das folgende.
var strCSV = e.target.result;
var arrCSV = strCSV.match(/[\w .]+(?=,?)/g);
var noOfCols = 4;
// To ignore the first row which is header
var hdrRow = arrCSV.splice(0, noOfCols);
var data = [];
while (arrCSV.length > 0) {
var obj = {};
// extract remaining rows one by one
var row = arrCSV.splice(0, noOfCols)
for (var i = 0; i < row.length; i++) {
obj[hdrRow[i]] = row[i].trim();
}
// push row to an array
data.push(obj)
}
Sagen wir jetzt, ich möchte jetzt ein anderes Array von Objekten mit denselben Datenwerten, aber verschiedenen Schlüsseln erstellen.
var tableData = [
{key1: "", key2: "", key3: "", key4: ""}];
Ich habe verschiedene Möglichkeiten ausprobiert, ich habe es nicht geschafft. Zum Beispiel habe ich folgendes versucht.
for(var i=0; i<data.length; i++){
console.log(i);
tableData[i]["key1"] = data[i].value1;
}
Oder etwas mit einer ähnlichen Form. Ich habe ein leeres Array tableData = [] erstellt, in dem ich denke, dass das Erstellen der Elemente an Ort und Stelle den Zweck erfüllen würde, aber es wird nicht funktionieren. Gibt es das überhaupt, um das zu tun? Ich kann nicht einfach ein Objekt erstellen und alle Elemente aus dem ersten Array eins nach dem anderen kopieren, da die Anzahl der Elemente im ersten Array alles sein kann.
Es ist immer noch ein bisschen unklar, was Sie fragen. Wie würde Ihr Ausgabeformat aussehen? –
Sie haben vergessen, das Objekt zu initialisieren. Mit diesem Befehl werden Objekt und Wert gesetzt: tableData [i] = {key1: data [i] .value1} – Gilsdav
Gibt es eine variable Anzahl von Schlüsseln in jedem Objekt? Mit anderen Worten, kann das zweite Objekt "value1:" 1200 "' und der dritte "value4:" 3 ", value5:" 22 "'? In welchem Fall ordnen Sie von einem Schlüsselnamen auf den anderen zu? –