Làm cách nào để tôi tạo mảng JavaScript (định dạng JSON) một cách linh hoạt?


122

Tôi đang cố gắng tạo như sau:

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

Tôi bắt đầu với

 var employees = new Array();

Làm cách nào để tiếp tục tạo mảng động (có thể thay đổi firstNametheo biến)? Tôi dường như không có được các mảng lồng nhau.


8
Cách ưa thích để tạo một mảng trong javascript là var Employess = []; không var nhân viên = new Array ();
Mattias Jakobsson

Câu trả lời:


254

Mảng đối tượng của chúng tôi

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

với ... trong

var employees = {
    accounting: []
};

for(var i in someData) {    

    var item = someData[i];   

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

hoặc với Array.prototype.map(), sạch hơn nhiều:

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;

Điều này tốt hơn so với ví dụ trên, điều này cũng cho biết cách thêm mảng động.
Harry

nhưng nếu tôi chuyển nó trong một tập tin khác, nó không được xác định.
Tripathi29

Điều gì xảy ra nếu tôi cần tên của mảng đó là động?
easythrees

5

Những gì tôi làm là một cái gì đó hơi khác với câu trả lời @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
    });
}

Và công việc đó hình thành tôi!

Tôi hy vọng nó có thể hữu ích cho một số người khác!


Từ đâu các mục biến đến từ đâu?
Irfan Raza

bây giờ đã được sửa @IrfanRaza
alexventuraio

5
var student = [];
var obj = {
    'first_name': name,
    'last_name': name,
    'age': age,
}
student.push(obj);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.