从函数返回多维数组

Ben*_*TAN 5 arrays powershell multidimensional-array

我在将现有的vbs脚本转换为PowerShell脚本时遇到了一些问题.我在这里用一些虚拟代码而不是原始代码来说明.在例1中,我在数组中只有1组元素,在将数组变量返回给函数时,它只会显示P.

但是在示例2中,我在数组中有2组元素,在将数组变量返回给函数时,它将正确显示元素.

如果在示例1和2中的函数内打印数组,则获取结果没有任何问题.

我用谷歌搜索,无法找到任何解决方案.非常感谢您的帮助.

例1:

function testArray {
    $array1 = @()
    $array1 += ,@("Apple","Banana")

    return $array1
}
$array2 = testArray
Write-Host $array2[0][1]
Run Code Online (Sandbox Code Playgroud)

结果是"P".

例2:

function testArray {
    $array1 = @()
    $array1 += ,@("Apple","Banana")
    $array1 += ,@("Orange","Pineapple")

    return $array1
}
$array2 = testArray
Write-Host $array2[0][0]
Run Code Online (Sandbox Code Playgroud)

结果是"Apple".

Ans*_*ers 6

PowerShell展开从函数返回的数组.使用逗号运算符(,,一元数组构造运算符)预先包含返回的数组,以将其包装在另一个数组中,该数组在返回时展开,使嵌套数组保持不变.

function testArray {
    $array1 = @()
    $array1 += ,@("Apple","Banana")

    return ,$array1
}
Run Code Online (Sandbox Code Playgroud)