Я хочу написать функцию, которая удаляет элементы из массива целых чисел, начиная с самых низких значений, без изменения позиций элементов.Язык программирования - ActionScript3.
например (это отдельные операторы трассировки)
var aNumArr:Array = [0,7,2,5,9,0]
trace(RemoveMinValues(aNumArr, 1, false)) //output: 7,2,5,9,0
//trace(RemoveMinValues(aNumArr, -1, true)) //output: 0,7,2,5,9
//trace(RemoveMinValues(aNumArr, 2)) //output: 7,2,5,9
Мне удалось удалить самые низкие значения в массиве, используя sort(Array.NUMERIC)
и sort(Array.DESCENDING)
.
Но я не могу понять, как переместить элементы обратно в исходное положение.
Поскольку это назначение , я не могу скопировать весь код функции.И я хотел бы, чтобы вы не сказали мне точный ответ, а дали мне представление о том, как это сделать.
Надеюсь, я был достаточно ясен.Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.
Заранее спасибо.
РЕДАКТИРОВАТЬ: я понял, что упустил несколько вещей из функции.Я также изменил aNumArr
и желаемые выходные значения, чтобы сделать его более понятным, чем я хочу.
И вот что я делал ранее:
function RemoveMinValues(aNumArr:Array, iMinsToRemove:int):void
{
if(iMinsToRemove >= 0)
{
aNumArr.sort(Array.NUMERIC);
for(var i:int = 0; i < iMinsToRemove; ++i)
{
aNumArr.shift();
}
}
else
{
aNumArr.sort(Array.DESCENDING);
for(var i:int = 0; i > iMinsToRemove; --i)
{
aNumArr.pop();
}
}
}
В основном aNumArr:Array
этоуказан массив целых чисел.И iNumbersOfMinsToRemove:int
- это количество минимальных значений для удаления.Назначение требует, чтобы я возвратил Ничего .
Я знаю, что Array.NUMERIC и Array.DESCENDING изменили бы положение элементов, но я не могу понять, как логическисохранить свои позиции.Пожалуйста, постарайтесь сделать как можно более простым.Я все еще аппетит.