如何使用actionsript在Flex中基于字符串分离数组集合

问题描述 投票:0回答:1

我想在flex中根据字符串分离数组集合。 我有一个 arraycollection,项目看起来像

{[(name:aa),(name:bb),(name:ae),(name:cc),(name:bd)}]
,现在我想根据“a”分隔此 arraycollection,并将所有“a”项目添加到单独的 arraycollection 中。

数组集合声明如

[Bindable]
public var arr:ArrayCollection=new ArrayCollection([{name:"cards/a.png"},{name:"cards/b.png"},{name:"cards/ac.png"},{name:"af.png"},{name:"ad.png"},{name:"cards/bb.png"}]);
actionscript-3 apache-flex flex4.5
1个回答
0
投票

您的数组集合构造应该是

new ArrayCollection([{name:"aa"},{name:"bb"}]);
“(”应该是“{”。

    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <fx:Script>
        <![CDATA[
         import mx.collections.ArrayCollection;
         import mx.controls.Alert;
         import mx.utils.ObjectUtil;

        public var wordCollection:ArrayCollection = new ArrayCollection([{name:"aa"}, {name:"bb"}, 
        {name:"ae"}, {name:"cc"}, {name:"bd"}]);

        public var charACollection:ArrayCollection = new ArrayCollection();
        public var charBCollection:ArrayCollection = new ArrayCollection();
        public var charCCollection:ArrayCollection = new ArrayCollection();

        private function createCompleteHandler():void
        {
            wordCollection.filterFunction = splitByChars;
            wordCollection.refresh();

            trace(ObjectUtil.toString(charACollection));
            trace(ObjectUtil.toString(charBCollection));
            trace(ObjectUtil.toString(charCCollection));
        }

        private function splitByChars(item:Object):Boolean
        {
            var char:String = item.name.toString().charAt(0);

            if (char.toLowerCase() == "a")
            {
                charACollection.addItem(item);
            }
            else if (char.toLowerCase() == "b")
            {
                charBCollection.addItem(item);
            }
            else if (char.toLowerCase() == "c")
            {
                charCCollection.addItem(item);
            }

            return true;
        }


        ]]>
    </fx:Script>
</s:Application>
© www.soinside.com 2019 - 2024. All rights reserved.