创建其中包含单个数组的锯齿状\多维数组

2023-11-29

我目前遇到一个脚本问题,该脚本根据传递给它的一组动态服务器\优先级构建数组。例如,基于以下输入

server1,200
server2,200

我想构建一些看起来像

$arr=@() #at this point I have an empty array
$arr+=@("server1",200) #at this point, I would expect to have an array
                       #that itself holds another array

然而此时,当我运行这个时,我得到了意外的输出

echo $arr.count # result is 2, rather than the 1 I would expect
                # It appears to be treating $arr as a single array
                # with two members (server1 and 200) rather than an array
                # that holds an array, which itself has two members

但是,如果我向数组添加另一个空数组:

$arr = @()
$arr += @()
$arr += $("server1",200)
$arr.count # output is 2, which is the desired result

我得到了我想要的结果。我的问题是..我可以获得我想要的锯齿状\多维数组的结果,其中只有一个数组吗?这不会是一种常见的情况,因为大多数时候我会处理多组项目,但是我想考虑所有情况,这可能是弹出的情况。我只是想不必添加额外的步骤来过滤掉空数组来满足这一点。

任何投入将不胜感激。


您的 2 个示例产生完全相同的结果,一个包含 2 个元素的平面数组,因为附加一个空数组 ($arr+=@()) 不会以任何方式修改数组。

示范:


PS C:\> $arr = @()
PS C:\> $arr += @('server1', 200)
PS C:\> $arr.Count
2
PS C:\> Format-Custom -InputObject $arr
server1
200  

PS C:\> $arr = @()
PS C:\> $arr += @()
PS C:\> $arr += @('server1', 200)
PS C:\> $arr.Count
2
PS C:\> Format-Custom -InputObject $arr
server1
200  

当您使用追加运算符 (+=)有两个数组 PowerShell 基本上连接数组。要将数组作为嵌套元素附加到第一个数组,您需要在第二个数组前面添加一元数组构造运算符 (,).


PS C:\> $arr = @()
PS C:\> $arr += ,@('server1', 200)
PS C:\> $arr += ,@('server2', 200)
PS C:\> $arr.Count
2
PS C:\> Format-Custom -InputObject $arr

[
  server1
  200
]

[
  server2
  200
]  

如果您事先知道元素的数量,您还可以预先创建所需大小的数组并将嵌套数组分配为其元素。这不需要逗号运算符。


PS C:\> $arr = New-Object Object[] 2
PS C:\> $arr.Count
2
PS C:\> $arr[0] = @('server1', 200)
PS C:\> $arr[1] = @('server2', 200)
PS C:\> Format-Custom -InputObject $arr

[
  server1
  200
]

[
  server2
  200
]  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建其中包含单个数组的锯齿状\多维数组 的相关文章

  • PostgreSQL 中字符串列类型的索引数组

    是否可以在类型为的列上创建索引文本数组 尝试使用GIN索引 但查询似乎没有使用这些索引 Example CREATE TABLE users name VARCHAR 100 groups TEXT Query SELECT name FR
  • 将 redux 数据保存为 state 中的对象数组,如果 state 有先前的状态可用,则更新状态

    我收到的回复如下格式示例 const response data name abc age 10 id 10 name def age 15 id 20 name abc 我想将其保存在我的 redux 状态中 如果 response na
  • “Connect-MsolService”未被识别为 cmdlet 的名称

    PSCommand commandToRun new PSCommand commandToRun AddCommand Connect MsolService commandToRun AddParameter Credential ne
  • 将 C 数组作为 char* 函数参数传递

    我有一些使用以下变量声明维护的代码 char tmpry 40 它与此功能一起使用 char SomeFunction char tmpryP Do stuff 函数调用是 SomeFunction tmpry 0 我非常确定这与以下内容相
  • PHP:将字符串分成 8 个块,我该怎么做?

    我基本上有二进制 假设它的长度是300 我如何将它分割 就像使用爆炸一样 成 8 位块 我查看了 chunk split 但它似乎只有一个 end 参数 而不是将其放入数组的选项 或者它可以插入数组吗 末尾 8 位数字可以低于 8 如果有人
  • 在 Lucene.NET 中索引 Json 对象数组

    我正在努力将任意 json 对象放入 Lucene NET 索引中 给定的对象可能如下所示 name Tony age 40 address street Weakroad number 10 floor 2 door Left skill
  • 匹配数组中的对象并合并

    UPDATE 我有一个名为的对象数组cars包含 li 标签 其中包含有关汽车的属性数据 例如价格 汽车类型等 我的目标是 如果这些汽车符合某些标准 则将它们合并到一个列表中 要求 快速性能 保持相同的汽车数组结构 Main Goal Ma
  • char* argv[] 在 c/c++ 中如何工作? [复制]

    这个问题在这里已经有答案了 我知道它用于使用命令行中的参数 但我没有得到声明 字符 argv 它是否意味着指向 char 数组的指针 如果是的话为什么没有大小 如果不是动态数组 就不需要有大小吗 我做了一些研究 发现有人说它会衰减为 cha
  • 如何复制 ArrayIterator 以保留其当前迭代位置?

    因为这似乎是我必须做的才能达到这种效果 arr a gt first b gt second iter new ArrayIterator arr Do a bunch of iterations iter gt next new iter
  • Firestore 更新后仅获取文档一次

    我有一个 tableView 它从 Firestore 集合中获取所有文档 并且我只想在用户刷新 tableView 后将最后一个文档添加到 Firestore 时获取一次 然后我想删除侦听器 以便当用户刷新 tableView 时仅获取文
  • Powershell 脚本无法从 SCCM 正常运行 [已关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • 关于 ArrayList[] x 的 Java 问题

    我一直对 ArrayList 数组有这个问题 也许你能帮忙 declare in class private ArrayList
  • .push() 将多个对象放入 JavaScript 数组中返回“未定义”

    当我将项目添加到beats数组然后console log用户时 我得到了数组中正确的项目数 但是当我检查 length 时 我总是得到 1 尝试调用索引总是会给我 未定义 如下所示 Tom beats 1 我想我错过了一些明显的东西 但这让
  • 标准转换:数组到指针的转换

    这是ISO的观点 标准转换 数组到指针的转换 4 2 1 数组 类型的左值或右值 N T 或 未知边界的数组 T 可以转换为右值 类型为 指向 T 的指针 结果是 指向第一个元素的指针 数组 如果可能的话 任何人都可以用一个示例程序来解释这
  • 总和不小于 key 的数组的最小子集

    给定一个数组 假设为非负整数 我们需要找到最小长度子集 使得元素之和不小于 K K 是作为输入提供的另一个整数 是否有可能找到时间复杂度为 O n n 的大 oh 的解决方案 我目前的想法是这样的 我们可以在 O n log n 中对数组进
  • 比较数组中的文件、从文本文件中删除行、函数、日志记录

    所以我创建了这两个数组 Approved Shares 和 Current Shares Reads Approvedshare txt and makes the txt file into an array public objFSO
  • 如何在单击事件时向数组添加值

    我想要实现的是读取单击事件的值并将其保存到数组中 我的代码 a href class hotel Add to favourites a var hotelName hotel on click function e e preventDe
  • 使用 powershell 获取短路径

    我正在尝试在 powershell 中使用以下代码来获取短路径 对于某些文件夹它有效 对于某些人来说它不起作用 a New Object ComObject Scripting FileSystemObject f a GetFile C
  • 引用同一 PSCustomObject 的另一个属性

    我有一个PSCustomObject已声明并且它有多个成员 其中一些需要互相参考 例如 data PSCustomObject a x b y c z d a b c 我所期望的是 data d回来 x y z 我尝试通过以下方式引用其他属
  • 在 Javascript 中连接空数组

    我正在浏览一些代码 我想知道这有什么用处 grid push concat row 根据我的理解 它等同于 grid push row 为什么要大惊小怪 连接 你想使用 concat当您需要展平数组并且没有由其他数组组成的数组时 例如 va

随机推荐