AS3:最小值不是 0 吗?

AS3: Minimum value from that is not 0?

我有一个问题: 有什么办法可以找到不为 0 的数组的最小值?假设我有这个数组:

{0,2,0,0,1} 我希望它找到 1。

找到最小值 包括 零应该只是一个细微的变化。这可以通过将最小值设置为第一个值然后遍历所有其他值来实现,如果数组中的值较低则替换最小值。

您的场景需要修改的是忽略那些值为零的。应该这样做:

var numbers:Array = [0,2,0,0,1];
var started:Boolean = false;
var minval:Number = 0;

for each (var num:Number in numbers) {
    if ((!started) && (num != 0)) {
        started = true;
        minval = num;
    }
    if ((started) && (num != 0) && (num < minval)) {
        minval = num;
    }
}

第一个 if 语句将是唯一执行的语句,直到找到第一个非零值,此时您将设置 started 并将该数字存储为最小值。

从那时起(包括那次迭代),您只需检查非零数字以查看它们是否更少并存储它们。

最后,started 将是 false,在这种情况下没有非零数字,或者 started 将是 trueminval 将保留找到的最小数字。