JavaScript 배열 (JSON 형식)을 어떻게 동적으로 생성합니까?


122

다음을 만들려고합니다.

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

나는 시작했다

 var employees = new Array();

배열을 계속 동적으로 생성하려면 어떻게해야합니까 ( firstName변수에 따라 변경 될 수 있음 )? 중첩 된 배열을 제대로 얻지 못하는 것 같습니다.


8
자바 스크립트에서 배열을 만드는 선호하는 방법은 var hireess = []; var가 아닌 employee = new Array ();
Mattias Jakobsson

답변:


254

우리의 객체 배열

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

for ... in

var employees = {
    accounting: []
};

for(var i in someData) {    

    var item = someData[i];   

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

또는을 사용 Array.prototype.map()하면 훨씬 더 깔끔합니다.

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;

이것은 위의 예보다 낫습니다. 이것은 또한 배열을 동적으로 추가하는 방법을 알려줍니다.
Harry

그러나 다른 파일로 전달하면 정의되지 않습니다.
Tripathi29 2015

해당 배열의 이름이 동적이어야하는 경우 어떻게합니까?
easythrees 2017-04-05

5

내가하는 일은 @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
    });
}

그리고 그 일이 나를 형성합니다!

나는 그것이 다른 신체에 유용 할 수 있기를 바랍니다!


변수 항목의 출처는 어디입니까?
Irfan Raza

그는 이제 @IrfanRaza 고정
alexventuraio

5
var student = [];
var obj = {
    'first_name': name,
    'last_name': name,
    'age': age,
}
student.push(obj);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.