diff options
| -rw-r--r-- | powershell.html.markdown | 21 | 
1 files changed, 11 insertions, 10 deletions
| diff --git a/powershell.html.markdown b/powershell.html.markdown index 9087dad8..318bf043 100644 --- a/powershell.html.markdown +++ b/powershell.html.markdown @@ -620,26 +620,27 @@ $area  $targetArray = 'a','b','c','d','e','f','g','h','i','j','k','l','m' -function Format-Range ($start, $end) { -[System.Collections.ArrayList]$firstSectionArray = @() -[System.Collections.ArrayList]$secondSectionArray = @() -[System.Collections.Stack]$stack = @() -    for ($index = 0; $index -lt $targetArray.Count; $index++) { +function Format-Range ($start, $end, $array) { +    [System.Collections.ArrayList]$firstSectionArray = @() +    [System.Collections.ArrayList]$secondSectionArray = @() +    [System.Collections.Stack]$stack = @() +    for ($index = 0; $index -lt $array.Count; $index++) {          if ($index -lt $start) { -            $firstSectionArray.Add($targetArray[$index]) > $null +            $firstSectionArray.Add($array[$index]) > $null          }          elseif ($index -ge $start -and $index -le $end) { -            $stack.Push($targetArray[$index]) +            $stack.Push($array[$index])          }          else { -            $secondSectionArray.Add($targetArray[$index]) > $null +            $secondSectionArray.Add($array[$index]) > $null          }      }      $finalArray = $firstSectionArray + $stack.ToArray() + $secondSectionArray -    Write-Output $finalArray +    return $finalArray  } -Format-Range 2 6 # => 'a','b','g','f','e','d','c','h','i','j','k','l','m' +Format-Range 2 6 $targetArray  +# => 'a','b','g','f','e','d','c','h','i','j','k','l','m'  # The previous method works, but uses extra memory by allocating new arrays.  # It's also kind of lengthy. | 
