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

标签 arrays function powershell

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

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

亲切的问候!

Function Create_array ($index, $value)
{
$array = new-object array[] $index
if ($value)
{
    for ($i = 0;$i -lt $array.length;$i++)
    {
        $array[$i] = $value
    }
    write-host ""
    write-host "Grattis!! Din array är nu skapad med angivet index och värde."
}
else
{
    for ($i = 0;$i -lt $array.length;$i++)
    {
        $array[$i] = "Hej $env:username och välkommen till Dennis och Jonas script. Detta är en defaulttext, ange ett eget index följt av önskat värde"
    }
    write-host ""
    write-host "Array är nu skapad med defaultvärden"
}
return $array
}


Function Add_to_array ($nyarray, $value, $index) # Lägger till ett värde på angivet index eller längst ner om index ej anges.
{
if ($index -gt $nyarray.length)
{
    $i = $nyarray.length
    write-host "Du har angivit ett felaktigt index. Din array innehåller $i element"
}
elseif ($index -gt 2) # Kollar om det angivna indexet är större än 2
{
    $nyarray[$index - 2] += $värde # Om större än 2: Angivna värdet läggs in på angivet index ($index - 2)
    write-host "Element är nu inlagt på angivet index i din array"
}                      # och resten flyttas ner.
elseif ($index -eq 1) # Kollar om angivet index är mindre än 2
{
    $nyarray[0] += $värde # Om mindre sätts det angivna värdet in på index 1 (0)
    write-host "Element är nu inlagt på angivet index i din array"
}
else
{
    $nyarray += $värde # Om inget index anges sätter denna funktion in det angivna värdet längst ner.
    write-host "Element är nu inlagt längst ner i din array"
}
return $nyarray # Lägger in den "nya" arrayen i det variabelnamn man valt.
}

最佳答案

我就是这样处理的。包装成一个函数。虽然你可能有问题。如果您的数组值很长。

$myArray = @("how","to","slice","into","an","array")

Function Insert-ToArray($Array, $insertAfter, $valueToInsert){
#find the index of value before insertion
$insertPoint = $Array.IndexOf($insertAfter)
#split the array into two parts
$firstHalf = $Array[0..$insertPoint]
$secondHalf = $Array[($insertPoint +1)..$Array.Length]
#slice into a new array
$newArray = @($firstHalf,$valueToInsert,$secondHalf)
return $newArray
#returning this new array means you can assign it over the old array
}

$myArray = Insert-ToArray -Array $myArray -insertAfter "slice" -valueToInsert "something"

$myArray

关于arrays - 在数组中的指定索引位置添加元素。电源外壳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19955050/

相关文章:

具有类型和默认值的 Javascript 方法

Javascript 尝试让 Function 出现在 Alert 中

c - typedef,在两个函数中找不到错误

azure - 如何使用 powershell 从 Azure 表存储中删除属性?

powershell - 在Powershell的属性名称中访问具有 "#"的对象属性?

powershell - 检索默认属性名称

arrays - 双端动态数组数据结构的缺点是什么?

arrays - Swift 尝试用字符串数组交叉检查 SKActions 数组

c++ - 将数组分成两组?

javascript - 我如何将循环开关放入数组中?