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
将是 true
和 minval
将保留找到的最小数字。
我有一个问题: 有什么办法可以找到不为 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
将是 true
和 minval
将保留找到的最小数字。