在数组中的指定索引位置添加元素。电源外壳

Aze*_*ely 6 arrays powershell function

我是 Powershell 新手,正在尝试将一些功能组合在一起。我创建了一个从输入创建数组的函数。我还尝试创建一个函数,在不使用列表的情况下在指定索引处添加元素(我知道列表要容易得多,但我试图了解如何在没有列表的情况下做到这一点)。

\n\n

这是我到目前为止的代码。我只是无法让它工作,我已经尝试过循环和下面的代码,感谢任何帮助。

\n\n

亲切的问候!

\n\n
Function Create_array ($index, $value)\n{\n$array = new-object array[] $index\nif ($value)\n{\n    for ($i = 0;$i -lt $array.length;$i++)\n    {\n        $array[$i] = $value\n    }\n    write-host ""\n    write-host "Grattis!! Din array \xc3\xa4r nu skapad med angivet index och v\xc3\xa4rde."\n}\nelse\n{\n    for ($i = 0;$i -lt $array.length;$i++)\n    {\n        $array[$i] = "Hej $env:username och v\xc3\xa4lkommen till Dennis och Jonas script. Detta \xc3\xa4r en defaulttext, ange ett eget index f\xc3\xb6ljt av \xc3\xb6nskat v\xc3\xa4rde"\n    }\n    write-host ""\n    write-host "Array \xc3\xa4r nu skapad med defaultv\xc3\xa4rden"\n}\nreturn $array\n}\n\n\nFunction Add_to_array ($nyarray, $value, $index) # L\xc3\xa4gger till ett v\xc3\xa4rde p\xc3\xa5 angivet index eller l\xc3\xa4ngst ner om index ej anges.\n{\nif ($index -gt $nyarray.length)\n{\n    $i = $nyarray.length\n    write-host "Du har angivit ett felaktigt index. Din array inneh\xc3\xa5ller $i element"\n}\nelseif ($index -gt 2) # Kollar om det angivna indexet \xc3\xa4r st\xc3\xb6rre \xc3\xa4n 2\n{\n    $nyarray[$index - 2] += $v\xc3\xa4rde # Om st\xc3\xb6rre \xc3\xa4n 2: Angivna v\xc3\xa4rdet l\xc3\xa4ggs in p\xc3\xa5 angivet index ($index - 2)\n    write-host "Element \xc3\xa4r nu inlagt p\xc3\xa5 angivet index i din array"\n}                      # och resten flyttas ner.\nelseif ($index -eq 1) # Kollar om angivet index \xc3\xa4r mindre \xc3\xa4n 2\n{\n    $nyarray[0] += $v\xc3\xa4rde # Om mindre s\xc3\xa4tts det angivna v\xc3\xa4rdet in p\xc3\xa5 index 1 (0)\n    write-host "Element \xc3\xa4r nu inlagt p\xc3\xa5 angivet index i din array"\n}\nelse\n{\n    $nyarray += $v\xc3\xa4rde # Om inget index anges s\xc3\xa4tter denna funktion in det angivna v\xc3\xa4rdet l\xc3\xa4ngst ner.\n    write-host "Element \xc3\xa4r nu inlagt l\xc3\xa4ngst ner i din array"\n}\nreturn $nyarray # L\xc3\xa4gger in den "nya" arrayen i det variabelnamn man valt.\n}\n
Run Code Online (Sandbox Code Playgroud)\n

小智 5

如果我们需要结果中的平面数组,我们可以使用求和运算符:

下面的代码添加[string]'Word'到 $array1 的位置 4

$new_array = @($array1[0..3]) + @('Word') + @($array1[4..5])
Run Code Online (Sandbox Code Playgroud)

用例是将两个平面数组连接在一起,或者在固定数组的某个位置添加一些数据。


mjo*_*nor 1

您可以通过数组切片来做到这一点:

$array = @(1,2,4,5)
$value = 3
$index  = 2

$array = $array[0..($index -1)] + $value + $array[$index..($array.Length -1)]

$array
Run Code Online (Sandbox Code Playgroud)

  • 这个数组构建不会像你想象的那样工作。`$array = $array[0..($index -1)] + $value + $array[$index..($array.Length -1)]` (5认同)