Comment créer dynamiquement un tableau JavaScript (format JSON)?


122

J'essaye de créer ce qui suit:

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

J'ai commencé avec

 var employees = new Array();

Comment continuer à créer le tableau dynamiquement (peut changer firstNameavec la variable)? Je ne semble pas avoir le bon tableau imbriqué.


8
La méthode préférée pour créer un tableau en javascript est var employess = []; pas var employés = new Array ();
Mattias Jakobsson

Réponses:


254

Notre gamme d'objets

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

avec pour ... dans

var employees = {
    accounting: []
};

for(var i in someData) {    

    var item = someData[i];   

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

ou avec Array.prototype.map(), ce qui est beaucoup plus propre:

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;

c'est mieux que l'exemple ci-dessus, cela indique également comment ajouter le tableau dynamiquement.
Harry

mais si je le passe dans un autre fichier, il n'est pas défini.
Tripathi29

Que faire si j'ai besoin que le nom de ce tableau soit dynamique?
easythrees

5

Ce que je fais est quelque chose d'un peu différent de la réponse @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
    });
}

Et ce travail me forme!

J'espère que cela pourrait être utile pour un autre organisme!


D'où vient l'élément variable?
Irfan Raza

c'est maintenant corrigé @IrfanRaza
alexventuraio

5
var student = [];
var obj = {
    'first_name': name,
    'last_name': name,
    'age': age,
}
student.push(obj);
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.