如何在as3中订购我的字符串

时间:2016-11-13 03:36:02

标签: actionscript-3 air

一个复杂的问题:

我有这个代码(不是完整的代码,但我认为这个问题的要点):

var $pmm:String;
var $pms:String;
var $bmm:String;
var $bms:String;

function get haute1():String { return $pmm; };
function get haute2():String { return $pms; }
function get basse1():String { return $bmm; };
function get basse2():String { return $bms; };

        accueil.todayHaute_txt.htmlText = haute1;
        accueil.todayBasse_txt.htmlText = basse1;
        accueil.todayHauteSecond_txt.htmlText = haute2;
        accueil.todayBasseSecond_txt.htmlText = basse2;

" haute1"是一小时(24小时格式)。像" 13h25"。

它每天都在变化。

问题:如何在AS3中按升序排列?

示例:如果haute1 = 15h20,haute2 = 6h00,basse1 = 11h且basse2 = 17h,则函数将按以下顺序排列: " haute2",然后" basse1",然后" haute1"最后" basse2"。

THX

修改

我添加了这个代码。它对你有帮助吗?

/ Assigns hours and tidal heights
        $pmm = convdateheure($tpbs[1 + $deltapm]);
        $pms = convdateheure($tpbs[3 + $deltapm]);
        $bmm = convdateheure($tpbs[2 - $deltapm]);
        $bms = convdateheure($tpbs[4 - $deltapm]);

function convdateheure($valeur:Number):String
{
    var $heure:Number = Math.floor($valeur);
    var $minute:Number = Math.floor(Math.floor(($valeur - Math.floor($valeur)) * 100) * 0.6);

    var hoursLabel:String = "", minsLabel:String = "";

    if ($heure == 24) $heure = 0;   // Check if at the 24 hour mark, change to 0
    if ($heure < 10) hoursLabel += "0" + $heure.toString(); else hoursLabel = $heure.toString();
    if ($minute < 10) minsLabel += "0" + $minute.toString(); else minsLabel = $minute.toString();

    return hoursLabel + ":" + minsLabel; 
}

2 个答案:

答案 0 :(得分:2)

如果您想订购以某种String格式编写的日期:

一种方式,取决于您的日期字符串格式,只是将它们推入数组并将它们排序为字符串,然后全部读取。

另一种方式首先将这些字符串解析为Date个实例,并将其Date.time属性推送到数组,对其进行排序,然后执行反向:解析所有时间值从排序数组到新的Date实例,然后使用Date.toString或类似。

答案 1 :(得分:0)

假设$valuer是一个数值:

var timesArray:Array = new Array();
var convertedTimesArray:Array = new Array();

function sortTimes():void{
    timesArray.push($valuer);
    timesArray.sort(Array.NUMERIC);
}

function convertTimes():void{
    convertedTimesArray = []; // clear the array
    for (var i:int = 0; i < timesArray.length; i++){
        var s:String = convdateheure(timesArray[i]);
        convertedTimesArray.push(s);
    }
}

这应该给你一个实际时间数组,按数字顺序排序,一个数组按相同的数字顺序排序,但使用你的函数转换为字符串值。