在 AS3 中以 DESCENDING 顺序订购我的“产品”

Posted

技术标签:

【中文标题】在 AS3 中以 DESCENDING 顺序订购我的“产品”【英文标题】:order my "products" in DESCENDING order in AS3 【发布时间】:2016-10-05 13:02:33 【问题描述】:

我的 AS3 代码正在搜索我的数据库并在列表(文本字段)中显示所有“产品”。

function displayPage(pageIndex:int):void 
    list.removeChildren();
    currentPageIndex = pageIndex;
    var firstItemIndex:int = pageIndex * itemsPerPage;
    var j:int = 0;
    var lastItemIndex: int = firstItemIndex + 10; // as lastItemIndex should be 10 more
 if (lastItemIndex > products.length) // if lastindex is greater than products length
 lastItemIndex = products.length;
 for(var i:int = firstItemIndex; i< lastItemIndex; i++)
 createListItem( j, products[i]); // j control the position and i points to particular element of array..
 j++;
 

function complete(e:Event):void 
        loading.visible=false;
    addChild(list);
    products = JSON.parse(loader5.data) as Array;
     products.reverse();
    for(var i:int = 0; i < products.length; i++)
        createListItem(i, products[i]);


displayPage(0);
showList();


function createListItem(index:int, item:Object):void 

    var listItem:TextField = new TextField();
listItem.text = item.title;

    list.addChild(listItem);
str = item.title;


在我的数据库中,我有一行“stampTime”。

我怎样才能以 DESCENDING 顺序显示我的列表中的产品(根据 stampTime,而不是每个产品的第一个字母)?

我想应该是这样的

products.sort(Array.DESCENDING); 

但是如何告诉 AS3 按每个产品的 stampTime (item.stampTime) 降序排列?

【问题讨论】:

【参考方案1】:

products.sortOn("stampTime", Array.DESCENDING)

你可以在this上学习。

【讨论】:

【参考方案2】:

遍历数组并计算每个数组元素中的每个时间戳,如果它是最小的(或最大的),则将其推送到新数组。循环结束后,您的初始数组将为空,而您的新 临时 数组将以升序(或降序)顺序填充。然后,循环遍历 temporary 数组并将它们全部推回第一个数组。现在您的数组已根据时间戳排序。

【讨论】:

【参考方案3】:

Array.sort 方法适用于基本数组。 在您的情况下,products 看起来像一个对象数组。 您可以使用Array.sortOn 方法。

// sort the stampTime field numerically in descending order
products.sortOn( ["stampTime"], [Array.DESCENDING|Array.NUMERIC]);

也许您的complete 方法如下所示。

function complete(e:Event):void 
    loading.visible=false;
    addChild(list);
    products = JSON.parse(loader5.data) as Array;

    //products.reverse();
    products.sortOn(["stampTime"], [Array.DESCENDING|Array.NUMERIC]);

    for(var i:int = 0; i < products.length; i++)
        createListItem(i, products[i]);

    
    displayPage(0);
    showList();

阅读官方文档。 http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7fa4.html

【讨论】:

以上是关于在 AS3 中以 DESCENDING 顺序订购我的“产品”的主要内容,如果未能解决你的问题,请参考以下文章

AS3 > 按顺序显示数组图像的按钮?

我如何按姓氏订购? [复制]

如何在 Cucumber 测试套件中订购功能文件?

Rails 3:可以用连接表订购吗?

如何在 AS3 中加载图像精灵序列时减少内存使用量

ActionScript 3 在AS3中排序多维数组(按字母顺序)