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.


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

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;

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!


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);
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.