JavaScript dizisini (JSON formatı) dinamik olarak nasıl oluştururum?


122

Aşağıdakileri oluşturmaya çalışıyorum:

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

İle başladım

 var employees = new Array();

Diziyi dinamik olarak oluşturmaya nasıl devam edebilirim ( firstNamedeğişkenle değişebilir)? İç içe diziyi doğru anlamıyorum.


8
JavaScript'te bir dizi oluşturmanın tercih edilen yolu, var utiless = []; var değil çalışanlar = new Array ();
Mattias Jakobsson

Yanıtlar:


254

Nesne dizimiz

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

ile ... içinde

var employees = {
    accounting: []
};

for(var i in someData) {    

    var item = someData[i];   

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

veya Array.prototype.map()çok daha temiz olan:

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;

bu yukarıdaki örnekten daha iyidir, bu aynı zamanda dizinin dinamik olarak nasıl ekleneceğini de gösterir.
Harry

ama başka bir dosyada geçiriyorsam tanımsız.
Tripathi29

Ya bu dizinin isminin dinamik olmasına ihtiyacım olursa?
easythrees

5

Yaptığım şey @Chase cevabından biraz farklı:

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
    });
}

Ve bu iş benden!

Umarım başka bir vücut için faydalı olabilir!


Değişken öğe nereden geliyor?
Irfan Raza

şimdi düzeltildi @IrfanRaza
alexventuraio

5
var student = [];
var obj = {
    'first_name': name,
    'last_name': name,
    'age': age,
}
student.push(obj);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.