かなり簡単に動作するはずのものを取得するのに問題があります。私は常に新しい値で配列を更新しています。その際、最小値と最大値のデルタまたは差を取得する必要があります。配列の長さは 10 のままである必要があります。問題は、デルタ配列の最初と最後の値だけが変化しているように見えることです。私は何が欠けていますか?
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