Skip to content

Instantly share code, notes, and snippets.

@RhinoLu
Created October 18, 2011 08:43
Show Gist options
  • Save RhinoLu/1294945 to your computer and use it in GitHub Desktop.
Save RhinoLu/1294945 to your computer and use it in GitHub Desktop.
尋找特定數值是否在區間範圍內
package
{
import flash.display.Sprite;
public class Main extends Sprite
{
private var _labelArray:Array = [10, 30, 50, 70, 90];
private var _midDotArray:Array;
private var _combineArray:Array;
private var _newMidDotArray:Array;
public function Main()
{
_midDotArray = makeBetweenArray(_labelArray);
//t.obj(_midDotArray);
_combineArray = combineArray(_labelArray,_midDotArray);
//t.obj(_combineArray);
_newMidDotArray = makeBetweenArray(_combineArray);
//t.obj(_newMidDotArray);
_newMidDotArray.unshift(5);
_newMidDotArray.push(95);
t.obj(_newMidDotArray);
trace(getCloseValueInArray(_newMidDotArray, 4));
trace(getCloseValueInArray(_newMidDotArray, 5));
trace(getCloseValueInArray(_newMidDotArray, 50));
trace(getCloseValueInArray(_newMidDotArray, 95));
trace(getCloseValueInArray(_newMidDotArray, 96));
}
// 點與點中間值
private function makeBetweenArray(array:Array):Array
{
var _array:Array = [];
for (var i:int = 0; i < array.length; i++) {
if (i + 1 < array.length) {
_array.push(array[i] + int(array[i + 1] - array[i]) * 0.5);
}
}
return _array;
}
// 將中間值置回原陣列
private function combineArray(originalArray:Array, midArray:Array):Array
{
var _array:Array = [];
var len:uint = originalArray.length;
for (var i:int = 0; i < len; i++) {
_array.push(originalArray[i]);
if (i < midArray.length) {
_array.push(midArray[i]);
}
}
return _array;
}
// 回傳區間,若-1則不在區間內
private function getCloseValueInArray(array:Array, value:Number):int
{
var result:int = -1;
var len:uint = array.length;
if (value < array[0] || value > array[len - 1]) {
result = -1;
}else {
for (var i:int = 0; i < len; i++) {
if (value >= array[i] && value < array[i + 1]) {
result = i;
}else if (value == array[len-1]) {
result = len - 2;
}
}
}
return result;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment