Wie erstelle ich dynamisch ein JavaScript-Array (JSON-Format)?


122

Ich versuche folgendes zu erstellen:

var employees = {
  "accounting": [ // accounting is an array in employees.
    {
      "firstName": "John", // First element
      "lastName": "Doe",
      "age": 23
    },

    {
      "firstName": "Mary", // Second Element
      "lastName": "Smith",
      "age": 32
    }
  ] // End "accounting" array.                                  

} // End Employees

Ich habe angefangen mit

 var employees = new Array();

Wie erstelle ich das Array weiterhin dynamisch (kann sich firstNamemit der Variablen ändern )? Ich scheine das verschachtelte Array nicht richtig zu machen.


8
Die bevorzugte Methode zum Erstellen eines Arrays in Javascript ist var Employess = []; nicht var employee = new Array ();
— Mattias Jakobsson

Antworten:


254

Unsere Auswahl an Objekten

var someData = [
   {firstName: "Max", lastName: "Mustermann", age: 40},
   {firstName: "Hagbard", lastName: "Celine", age: 44},
   {firstName: "Karl", lastName: "Koch", age: 42},
];

mit für ... in

var employees = {
    accounting: []
};

for(var i in someData) {    

    var item = someData[i];   

    employees.accounting.push({ 
        "firstName" : item.firstName,
        "lastName"  : item.lastName,
        "age"       : item.age 
    });
}

oder mit Array.prototype.map(), was viel sauberer ist:

var employees = {
    accounting: []
};

someData.map(function(item) {        
   employees.accounting.push({ 
        "firstName" : item.firstName,
        "lastName"  : item.lastName,
        "age"       : item.age 
    });
}

40
var accounting = [];
var employees = {};

for(var i in someData) {

    var item = someData[i];

   accounting.push({ 
        "firstName" : item.firstName,
        "lastName"  : item.lastName,
        "age"       : item.age 
    });
}

employees.accounting = accounting;

Dies ist besser als das obige Beispiel. Hier erfahren Sie auch, wie Sie das Array dynamisch hinzufügen.
— Harry

aber wenn ich es in einer anderen Datei übergebe, ist es undefiniert.
— Tripathi29

Was ist, wenn der Name dieses Arrays dynamisch sein muss?
— easythrees

5

Was ich mache, ist etwas anderes als die Antwort von @Chase:

var employees = {};

// ...and then:
employees.accounting = new Array();

for (var i = 0; i < someArray.length; i++) {
    var temp_item = someArray[i];

    // Maybe, here make something like:
    // temp_item.name = 'some value'

    employees.accounting.push({
        "firstName" : temp_item.firstName,
        "lastName"  : temp_item.lastName,
        "age"       : temp_item.age
    });
}

Und diese Arbeit von mir!

Ich hoffe, es könnte für einen anderen Körper nützlich sein!


Woher kommt das variable Element?
— Irfan Raza

Es ist jetzt behoben @IrfanRaza
— alexventuraio

5
var student = [];
var obj = {
    'first_name': name,
    'last_name': name,
    'age': age,
}
student.push(obj);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.