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
javascriptで配列を作成するための推奨される方法は、var employeeess = [];です。var employees = new Array();ではありません
マティアスヤコブソン

回答:


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;

これは上記の例よりも優れています。これは、配列を動的に追加する方法も示しています。
ハリー、

しかし、それを別のファイルで渡す場合、それは未定義です。
Tripathi29、2015

その配列の名前を動的にする必要がある場合はどうなりますか?
easythrees 2017

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.