Apache flex Flex:在数组中循环

Apache flex Flex:在数组中循环,apache-flex,multidimensional-array,Apache Flex,Multidimensional Array,我试图构建一个数组数组,该数组将使用以下语法。我的产出肯定不是我想要达到的。这是我的密码: var labs:ArrayCollection = new ArrayCollection(); var sets:ArrayCollection = new ArrayCollection(); var labsArray:Array = ["ProDPI","WHCC","Tin"]; var setsArray:Array = ["Set1","Set2","Set3"]

我试图构建一个数组数组,该数组将使用以下语法。我的产出肯定不是我想要达到的。这是我的密码:

var labs:ArrayCollection = new ArrayCollection();
    var sets:ArrayCollection = new ArrayCollection();

    var labsArray:Array = ["ProDPI","WHCC","Tin"];
    var setsArray:Array = ["Set1","Set2","Set3"];

    var folders:ArrayCollection = new ArrayCollection();
    var foldersArray:Array = [labsArray, setsArray];

    var objFolderBuild:Object = new Object;

        for (var i:int = 0; i< foldersArray.length;i++) {
                for (var j:int = 0; j < foldersArray[i].length; j++) {
                    objFolderBuild.labName = foldersArray[i][j];
                    folders.addItem(objFolderBuild);
                }
        }
labFolderList.labelField="labName";
labFolderList.dataProvider=folders;
setFolderList.labelField="setName";
setFolderList.dataProvider=folders;
var-labs:ArrayCollection=newarraycollection();
变量集:ArrayCollection=new ArrayCollection();
var labsArray:Array=[“ProDPI”、“WHCC”、“Tin”];
var setsArray:Array=[“Set1”、“Set2”、“Set3”];
var folders:ArrayCollection=newarraycollection();
var foldersArray:Array=[labsArray,setsArray];
var objFolderBuild:Object=新对象;
for(变量i:int=0;i

我的输出是6次引用“Set3”。我的for循环显然有问题,但我无法解决。任何想法都会大有帮助。

我创建了这个快速应用程序,以证明您的代码正确地跟踪了foldersArray[I][j]。90%的代码来自你的应用程序

但是,我想指出,
objFoldersBuild
对象只创建一次。因此,每次通过循环都要更改现有对象属性的值,并将其添加到文件夹ArrayCollection中。您有一个ArrayCollection,其中包含同一对象的多个副本。答案是每次通过循环时创建一个新对象

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx" preinitialize="windowedapplication1_preinitializeHandler(event)">
    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import mx.events.FlexEvent;

            protected function windowedapplication1_preinitializeHandler(event:FlexEvent):void
            {
                var labs:ArrayCollection = new ArrayCollection();
                var sets:ArrayCollection = new ArrayCollection();

                var labsArray:Array = ["ProDPI","WHCC","Tin"];
                var setsArray:Array = ["Set1","Set2","Set3"];

                var folders:ArrayCollection = new ArrayCollection();
                var foldersArray:Array = [labsArray, setsArray];

                var objFolderBuild:Object = new Object;

                for (var i:int = 0; i< foldersArray.length;i++) {
                    for (var j:int = 0; j < foldersArray[i].length; j++) {
                        trace(foldersArray[i][j]);
                                objFolderBuild  = new Object;
                        objFolderBuild.labName = foldersArray[i][j];
                        folders.addItem(objFolderBuild);
                    }
                }
/*              labFolderList.labelField="labName";
                labFolderList.dataProvider=folders;
                setFolderList.labelField="setName";
                setFolderList.dataProvider=folders; */
            }

        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
</s:WindowedApplication>


我是否遗漏了您在代码中实际输出某些内容的点?您指的是什么输出?labFolderList.labelField=“labName”