2010-11-20 4 views
0

Wie finde ich die Anzahl der Eigenschaften in einem Element der ArrayCollection? Die Struktur der Arraycollection wud sein so etwas wie:Wie finde ich die Anzahl der Eigenschaften in einem Element einer ArrayCollection?

var arrColl: Arraycollection = new Arraycollection ([{column1Data: "some", column2Data: "some"}, {column1Data: "some", column2Data:“ someData ", column3Data:" someData "}, {column1Data:" someData ", column2Data:" someData ", column3Data:" someData ", column4Data:" someData "}]);

Hier hat das erste Element zwei Eigenschaften, das zweite Element hat drei Eigenschaften und so weiter. Wie finde ich das?

+0

Ich Frage, welche geschäftlichen Anforderungen Sie dazu geführt haben, eine Sammlung so zu erstellen. – JeffryHouser

Antwort

1

mit Ihren Daten, versuchen Sie dies:

public function numProperties(value:Object):int 
{ 
    var n:int = 0; 
    for each(var p:Object in value) { 
     n++; 
    } 
    return n; 
} 

trace(numProperties(arrColl.getItemAt(0))); 
trace(numProperties(arrColl.getItemAt(1))); 
trace(numProperties(arrColl.getItemAt(2))); 

Berücksichtigen Sie, dass manchmal Eigenschaften übersehen werden könnten (siehe Object. setPropertyIsEnumerable()), aber es sollte in Ihrem Fall in Ordnung sein, da Sie Objektliterale sind zu definieren.

+0

@ www.Flextras.com - Was ist so seltsam an der Sammlung? Ich bekomme XML-Daten, die ich in einer Array-Sammlung speichern.Die Anzahl der innersten Knoten kommt nicht (Spalte1Daten zu Spalte40Daten) .. Ich möchte nur um die Anzahl der Eigenschaften in jedem Element der ArrayCollection zu zählen. – himanshu

+0

Was ist, wenn nicht alle Eigenschaften vom Typ String sind ... sagen wir, var arrColl: ArrayCollection = new ArrayCollection ([{column1Data: "someData", column2Data: 1}, {column1Data: "someData", column2Data: 2, column3Data: false }, {column1Data: "someData", column2Data: 2, column3Data: false, column4Data: "someData"}]); – himanshu

+0

Ah ja ein Objekttyp wäre besser, ich habe die Antwort aktualisiert. – Dave

Verwandte Themen