2010-02-12 12 views
89

Ich versuche, das schaffen die folgenden:Wie erstelle ich JavaScript-Array (JSON-Format) dynamisch?

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 

ich mit

begann
var employees = new Array(); 

Wie ich weiterhin dynamisch das Array (möglicherweise firstName mit Variable ändern)? Ich scheine das verschachtelte Array nicht richtig zu bekommen.

+7

Die bevorzugte Methode zum Erstellen eines Arrays in Javascript ist var emploessess = []; nicht var Mitarbeiter = new Array(); –

Antwort

195

Unsere Array von Objekten

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

mit für ... 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 
    }); 
} 

oder mit Array.prototype.map(), die viel sauberer ist:

var employees = { 
    accounting: [] 
}; 

someData.map(function(item) {   
    employees.accounting.push({ 
     "firstName" : item.firstName, 
     "lastName" : item.lastName, 
     "age"  : item.age 
    }); 
} 
30
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; 
+0

Dies ist besser als das obige Beispiel, dies zeigt auch, wie das Array dynamisch hinzugefügt wird. – Harry

+0

aber wenn ich es in einer anderen Datei übergebe, ist es undefiniert. – Tripathi29

+0

Was ist, wenn ich brauche, dass der Name dieses Arrays dynamisch ist? – easythrees

4

Was ich tun ist etwas nur ein bisschen anders her m @Chase Antwort:

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

Und diese Arbeit bilden mich!

Ich hoffe, dass es für etwas Körper sonst nützlich sein könnte!

+0

Woher kommt der variable Artikel? –

+0

ist es jetzt @IrfanRaza fest –

1
var student = []; 
var obj = { 
    'first_name': name, 
    'last_name': name, 
    'age': age, 
} 
student.push(obj); 
Verwandte Themen