2010-11-23 13 views
0

Ist das möglich?Javascript Dynamische Arrays und Objekt

Also brauche ich ein Array mit einem dynamischen Namen und Inhalt, was erweitert und zugegriffen werden kann.

object = {}; 
var two = ['thing', 'thing2']; 
for(one in two){ 
    object[two[one]] = []; 
} 

Wenn ja, aber nicht auf diese Weise, wie? Dies ist auf jeden Fall machbar, nur um sicher machen

+2

Eh? Ich bin mir nicht sicher, was du fragst. Auch das Iterieren eines 'Array' mit' for-in' wird als schlechte Übung angesehen; Verwenden Sie eine "for" -Schleife im C-Stil oder verwenden Sie "Array.prototype.forEach", falls verfügbar. – strager

+0

Entschuldigung, es ist wirklich schwer für mich zu erklären: \ – Adam

+0

Beachten Sie, dass das dort gezeigte Codebeispiel eine globale 'one'-Variable deklariert, es sei denn, Sie haben' var one' an anderer Stelle in Ihrer Funktion. Die beste Methode zum Iterieren von Eigenschaften eines Objekts ist 'for (var prop in obj) {if (obj.hasOwnProperty (prop)) {...}}'. – Phrogz

Antwort

1

, dass das Objekt die Eigenschaft besitzt und es ist nicht geerbt von höher in der Prototypkette bis:

object = {}; 
var two = ['thing', 'thing2']; 

for..in:

for(var one in two){ 
    if(two.hasOwnProperty(one)) 
     object[two[one]] = []; 
} 

for:

for(var i = 0; i < two.length; i++) 
    object[two[i]] = []; 
+0

Ihnen fehlt ein 'var' in einem, was dazu führt, dass es global definiert ist (und möglicherweise kollidiert). – Phrogz

+0

@Phrogz, Ups. Verpasste diesen einen. Vielen Dank! –

1
var object = {}; 
var props = 'thing thing2'.split(' '); 
for (var i=0,len=props.length;i<len;++i){ 
    object[props[i]] = []; 
}