2015-04-13 2 views
0

Пытается создать эквивалент AS3 как медианных, так и усредняющих фильтров.AS3 -sort значения массива и средние значения в среднем

Фильтр усреднения будет просто получать средние значения содержимого массива.

Как бы сначала отсортировать массив с длиной слова 10, а затем получить среднее значение из 5 средних значений?

+0

Сколько вам нужно? взгляните на метод сортировки массива. http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Array.html. –

ответ

2

Предполагая, что у вас есть Array (или Vector) чисел:

Использование sort() с Array.NUMERIC:

numbers.sort(Array.NUMERIC); 

Используйте slice() скопировать суб-набор отсортированного массива:

var middleIndex:int = numbers.length/2; 
var middleNumbers:Array = numbers.slice(middleIndex - 2, middleIndex + 2); 

Напишите функцию, которая использует петлю for для повторения по элементу NTS и просуммировать их, затем разделить сумму на длине массива:

function average(numbers:Array):Number { 
    var sum:Number = 0; 
    for each(var n:Number in numbers){ 
     sum += n; 
    } 
    return sum/numbers.length; 
} 

Для медианы, вы хотите, среднее число, если длина нечетная, или среднее из двух средних чисел, если длина еще:

function median(numbers:Array):Number { 
    var middle:Number = numbers.length/2; 
    if(middle is int){ 
     return numbers[middle]; 
    }else{ 
     return (numbers[int(middle)] + numbers[int(middle) + 1])/2; 
    } 
} 
Смежные вопросы