0

オブジェクトの ArrayCollection があります。各オブジェクトには、次のキー/値があります。

{date: 2009-12-01, visits=13555, bouceRate=45}
{date: 2009-12-05, visits=46955, bouceRate=45}
{date: 2009-12-06, visits=13685, bouceRate=45}
{date: 2009-12-02, visits=13685, bouceRate=45}
{date: 2009-12-04, visits=68755, bouceRate=45}
{date: 2009-12-03, visits=35875, bouceRate=45}

この ArrayCollection を日付で並べ替える必要があるため、過去から現在の順に並べ替えます。次のようにします。

{date: 2009-12-01, visits=13555, bouceRate=45}
{date: 2009-12-02, visits=13685, bouceRate=45}
{date: 2009-12-03, visits=35875, bouceRate=45}
{date: 2009-12-04, visits=68755, bouceRate=45}
{date: 2009-12-05, visits=46955, bouceRate=45}
{date: 2009-12-06, visits=13685, bouceRate=45}

私は次のことを優先せずに(ソートせずに)試しました:

var dateSort:Sort = new Sort();
    dateSort.fields = [new SortField("date", false, false, true)];

newAreaChartData.sort = dateSort;
newAreaChartData.refresh();

// traceout
for (var i:int = 0; i <newAreaChartData.length; i++)
    trace ("Object #" + i + ": " + ObjectUtil.toString(newAreaChartData.getItemAt(i)));
4

3 に答える 3

1

SortFieldを作成する方法:

new SortField("date", false, false, true)

APIから、最後のパラメーターは、値を文字列としてではなく数値でソートすることを意味する必要があります。

オブジェクトの「日付」フィールドのタイプは何ですか?文字列の場合は、アルファベット順に並べ替えることができます

new SortField("date", false, false, null)

これが役立つことを願っています

PH

于 2009-12-08T22:50:54.007 に答える
1

これは私のために働いた:

for(i = 0; i < newAreaChartData.length; ++i) {
    newAreaChartData[i].formattedDate = getActualDate(newAreaChartData[i].date);
    newAreaChartData[i].dateTime =    newAreaChartData[i].formattedDate.time;
    trace(newAreaChartData[i].dateTime);
}

    var dateSort:Sort = new Sort();
    dateSort.fields = [new SortField("dateTime", false, false, true)];
    newAreaChartData.sort = dateSort; 
    newAreaChartData.refresh();

for (var i:int = 0; i <newAreaChartData.length; i++)
    trace ("Object #"+ i + ": " + ObjectUtil.toString(newAreaChartData.getItemAt(i)));
于 2009-12-08T17:17:32.830 に答える
0

ArrayCollection.refresh() を呼び出すまで、並べ替えが適用されるとは思いません。

newAreaChartData.sort = dateSort;
newAreaChartData.refresh();
于 2009-12-08T16:51:32.663 に答える