Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 使用Math.max()函数中的数组刷新as3_Arrays_Flash_Actionscript 3_Math - Fatal编程技术网

Arrays 使用Math.max()函数中的数组刷新as3

Arrays 使用Math.max()函数中的数组刷新as3,arrays,flash,actionscript-3,math,Arrays,Flash,Actionscript 3,Math,可能重复: 您好-我正在尝试使用flash的Math.max()功能查找一组数字中的最高值。通常,这些是通过逗号分隔的数字字符串输入的,但我需要让它在数组中循环一系列数字。这个的正确语法是什么?我试过: var maxMemberWidth = int(Math.max( for (var k=0;k<memberClips.length;k++){ memberClips[i].memeberWidth; } )); var maxMemberWidt

可能重复:

您好-我正在尝试使用flash的Math.max()功能查找一组数字中的最高值。通常,这些是通过逗号分隔的数字字符串输入的,但我需要让它在数组中循环一系列数字。这个的正确语法是什么?我试过:

var maxMemberWidth = int(Math.max(
    for (var k=0;k<memberClips.length;k++){
        memberClips[i].memeberWidth;
    }
));
var maxMemberWidth=int(Math.max(

对于(var k=0;k您可以尝试以下方法:

var max_number:Number = memberClips[0];

for( var i:int = 1; i < memberClips.length; i++ )
{
    max_number = Math.max( max_number, memberClips[i] );
}
var max_number:number=memberClips[0];
for(变量i:int=1;i

这样做的目的是将最大数初始化为数组的第一个元素,然后循环遍历数组中的所有元素,直到它到达数组的末尾。然后,您将获得要查找的最大数。索引变量
i
被初始化为1,因为您不需要将第一个元素与其对应的元素进行比较elf。您应该注意,此代码还假设您的数组中至少有一个元素。

您的aproach并非完全错误,您可以执行以下操作:

// note the apply in the next line!
var maxMemberWidth:int = int(Math.max.apply(null, AllMembersWidth()));

...

private function AllMembersWidth():Array
{
    var widths:Array = [];
    for (var k:int = 0; k < memberClips.length; k++)
        widths[k] = memberClips[k].memeberWidth;
    return widths;
}
//注意下一行的apply!
var maxMemberWidth:int=int(Math.max.apply(null,AllMembersWidth());
...
私有函数AllMembersWidth():数组
{
变量宽度:数组=[];
for(var k:int=0;k

即使您有一个空数组(它返回
-Infinity

更精简的版本,看起来不像在ruby上那样性感,但它可以工作

var widths:Array = clips.map( function(o:*, i:int, a:Array):* { return o.width; } );

var max:Number = Math.max.apply(null, widths);
var min:Number = Math.min.apply(null, widths);

谢谢-我在这里找到了一个很好的方法: