0
遇到問題應該相當簡單。 我不斷用新值更新數組,因此我需要獲取最低值和最高值之間的差值或差值。數組的長度應保持恆定爲10. 問題是隻有我的delta數組的第一個和最後一個值似乎發生了變化。我錯過了什麼?從不斷更新的數組中獲取數組值的增量
雖然在AS3,應該是幾乎相同的使用Java或Javascript
private var _deltaArray:Array= new Array();
private function update(myVal:int):void{
if (_deltaArray.length < 10) {
_deltaArray.push(myVal);
}
if (_deltaArray.length >= 10) {
_deltaArray.push(myVal);
var delta:int =getDelta(_deltaArray);
_deltaArray.shift();
}
}//end func
private function getDelta(a:Array):int {
var total:Number=0;
var L:int=a.length
if (L > 1) {
a.sort(Array.NUMERIC);
var delta:int=int(a[0]) - int(a[L - 1]);
trace('getDelta delta= ' + delta);
}
return delta;
}//end func
我不太清楚你的意思是你的問題,但它看起來很奇怪,你排序數組,然後'轉移'它。 'Array.sort()'會修改原始數組,所以你總是刪除最小的值。那是故意的嗎? –