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.

sebas23
quelle
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 
    });
}
Alex
quelle
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;
Verfolgungsjagd
quelle
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!

alexventuraio
quelle
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);
Venu Upadhyay
quelle