我想寫一個函數,它從最低值開始從整數數組中刪除元素,而不更改元素的位置。編程語言是ActionScript3。AS3從陣列中刪除元素而不更改位置
例如(這些是個別跟蹤語句)
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會改變元素的位置,但我似乎無法弄清楚如何保持其位置的邏輯。請儘量保持簡單。我仍然是一個美麗的人。
RemoveMinValues()中的第二個參數是什麼? – Chris