Bagaimana cara membuat array JavaScript (format JSON) secara dinamis?

122

Saya mencoba membuat yang berikut ini:

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

Saya mulai dengan

 var employees = new Array();

Bagaimana cara terus membuat array secara dinamis (mungkin berubah firstNamedengan variabel)? Sepertinya saya tidak mendapatkan hak array bersarang.

sebas23
sumber
8
Cara yang disukai untuk membuat larik dalam javascript adalah var Employess = []; bukan var karyawan = new Array ();
Mattias Jakobsson

Jawaban:

254

Array objek kami

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

dengan untuk ... di

var employees = {
    accounting: []
};

for(var i in someData) {    

    var item = someData[i];   

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

atau dengan Array.prototype.map(), yang jauh lebih bersih:

var employees = {
    accounting: []
};

someData.map(function(item) {        
   employees.accounting.push({ 
        "firstName" : item.firstName,
        "lastName"  : item.lastName,
        "age"       : item.age 
    });
}
Alex
sumber
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;
Mengejar
sumber
ini lebih baik daripada contoh di atas, ini juga memberi tahu cara menambahkan array secara dinamis.
Harry
tetapi jika saya meneruskannya di file lain, itu tidak ditentukan.
Tripathi29
Bagaimana jika saya membutuhkan nama array itu menjadi dinamis?
easythrees
5

Apa yang saya lakukan adalah sesuatu yang sedikit berbeda dari jawaban @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
    });
}

Dan pekerjaan itu membentuk saya!

Saya harap ini bisa bermanfaat untuk orang lain!

alexventuraio
sumber
Dari mana item variabel itu berasal?
Irfan Raza
sekarang diperbaiki @IrfanRaza
alexventuraio
5
var student = [];
var obj = {
    'first_name': name,
    'last_name': name,
    'age': age,
}
student.push(obj);
Venu Upadhyay
sumber