需要帮助,我有totalA - totalB - totalC - totalD,需要从这个4中选择最高的变量,但如果最高的一个等于另一个,则必须显示哪些变量等于。
我已经使用过这段代码,但是当它满足等于(A = B = C)时,它只显示D
var aNumber:Array = new Array(totalA , totalB , totalC , totalD );
for(var i:Number = 0; i < aNumber.length; i++)
{
if(aNumber[i] < aNumber[i+1])
{
bigger = aNumber[i+1];
}
}
答案 0 :(得分:0)
var aNumber:Array = new Array(totalA , totalB , totalC , totalD );
bigger = aNumber[0];
for(var i:Number = 1, var j:Number = (aNumber.length)-1; i<j ; i++)
{
if(bigger < aNumber[i])
{
bigger = aNumber[i];
}
}
var highest:Array = new Array();
highest[] = bigger;
for(var i:Number = 0, var j:Number = (aNumber.length); i<j ; i++){
if(aNumber[i] == bigger){
highest[] = aNumber[i];
}
}
数组最高将获得最高分
答案 1 :(得分:0)
如果你想为分数输出一个字母/ etc,我会使用一个对象/字典而不是一个直的数组。
基本上,算法将是:
捕获对象/词典中的分数,其中键是玩家的名称,值是他们的分数。
枚举对象/词典中的每个项目/玩家,并将当前得分与最高得分进行比较。
如果当前得分大于最高得分,请清除所有以前的获胜者,设置新的最高得分并将当前玩家添加到获奖者。
如果当前得分等于最高得分,请将当前玩家添加到获奖者数组中。
以下是一些仓促炮制的动作。
var scores:Object = {
'A': totalA,
'B': totalB,
'C': totalC,
'D': totalD
};
var maxScore:Number = -1;
var winners:Array = new Array();
for(var player:String in scores)
{
var score:Number = scores[player];
if (score > maxScore)
{
maxScore = score;
winners = new Array();
winners.push(player);
}
else if (score == maxScore)
{
winners.push(player);
}
}
在此段代码的末尾,您应该获得maxScore
中的最高分以及winners
数组中获胜玩家的名称。
答案 2 :(得分:0)
此解决方案可以更优雅(假设数组包含整数值):
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.collections.Sort;
import mx.collections.SortField;
import mx.controls.Alert;
private var array:Array = [1,2,3,4,3];
public function init():void{
var maxValue:Number = getMaxValue(new ArrayCollection(array));
Alert.show(String(maxValue)); //show value 4
}
private function getMaxValue(tempArr:ArrayCollection):Number {
var dataSort:Sort = new Sort();
dataSort.fields = [new SortField(null,false,true,true)];;
tempArr.sort = dataSort;
tempArr.refresh();
return tempArr[0];
}
]]>
</mx:Script>
</mx:Application>
根据这个例子,我从最高到最低排序数组并取第一个。它的工作完美。我希望这有帮助