Ich versuche, dieses mehrdimensionale Array in Objekt zu konvertieren, aber wenn ich es ausführen, bekomme ich den zweiten Teil des Arrays in das Objekt gespeichert und der erste Teil fehlt.Multidimensionales Array zu Objekt
Wie bekomme ich das gesamte Array im Objekt gespeichert?
var array = [
[
['name', 'John Smith'],
['age', 34],
['occupation', 'nurse']
],
[
['name', 'Nico Klein'],
['age', 24],
['occupation', 'engineer']
]
];
function toObject(arr) {
var obj = {};
for (var j = 0; j < arr.length; j++) {
for (var i = 0; i < arr[j].length; i++) {
obj[arr[j][i][0]] = arr[j][i][1];
}
}
return obj;
}
var result = toObject(array);
console.log(result);
Und gibt es eine bessere Methode, dies zu schreiben?
Es ist nicht sinnvoll erscheint ein einzelnes Objekt zu erstellen aus diesen Daten. Ein Array von Objekten wäre sinnvoller. –
naja ... jedes 3rd level Paar hat Name, Alter, Beruf ... also bekommst du natürlich nur das letzte ... du brauchst ein Array von Objekten als deine endgültige Ausgabe, kein Objekt ... oder Verwenden Sie einen anderen "Schlüssel" für jede "Person", dann innerhalb dieses "Schlüssels" haben Sie ein Objekt –
Das liegt daran, dass 'arr [j] [i] [0]' ist der gleiche Wert für jede Iteration, so überschreibt es nur den vorhandenen Wert . Zum Beispiel für 'name' macht es:' obj.name = 'John Smith'' dann 'obj.name =' Nico Klein''. –