使用数组,删除值,然后恢复数组



我的代码循环;在每个循环中,我需要使用一个数组,删除部分或全部值,然后将数组重置为其原始状态,然后继续下一个循环。例:

$myArray[5] = [1, 2, 3, 4, 5]
_ArrayDelete($myArray, $i) ; Delete at the specified index

此循环运行后,我需要再次设置$myArray[5] = [1, 2, 3, 4, 5]。有没有另一种方法可以做到这一点(不使用_ArrayAdd()(?

您可以使 arrayDelete 函数返回数组的更改副本,而不是修改原始数组本身。完成此操作后,您可以使用如下所示的内容:

$tempArray = arrayDelete($myArray, $i);
// do stuff with $tempArray
// $myArray is not changed

在您的情况下是否可能,或者如何在 arrayDelete 中实现这一点,如果没有更多信息,就不可能说。

避免redim惩罚,只需提取您需要的内容

#include<array.au3>
local $myArray[5] = [1, 2, 3, 4, 5]
   for $i = 0 to 4
    _ArrayDisplay(_ArrayExtract($myArray , $i))
    If $i = 4 Then $i = -1
  next

在函数中使用变量的局部范围:

#include <array.au3>
Global $myArray[5] = [1, 2, 3, 4, 5]
For $i = 1 To 1000
    cycle($myArray)
Next
Func cycle($myArray) ; $myArray is a local copy inside the function
    _ArrayDisplay($myArray) ; to prove, it's the original
    _ArrayDelete($myArray,2) ; delete something
    _ArrayDisplay($myArray) ; to prove, it's altered
EndFunc   ;==>cycle

这就是我的建议:使用(本地(副本。

相关内容

  • 没有找到相关文章

最新更新