powershell - 在powershell中创建具有来自2个数组的多个值的哈希
问题描述
我想为每个键创建一个包含多个值的哈希,来自 2 个大小不相等的数组 A 和 B。
$A = @('usr1','usr2', 'usr3', 'usr4')
$B = @('INC1','INC2','INC3','INC4','INC5','INC6')
$h = [ordered]@{}
for($i=0; $i -lt $B.Count; $i++)
{
for($j=0;$j -lt $A.Count; $j++)
{
$h[$A[$j]] += @($B[$j])
}
}
` 我得到的输出
Name Value
---- -----
usr1 {INC1, INC2, INC3, INC4...}
usr2 {INC1, INC2, INC3, INC4...}
usr3 {INC1, INC2, INC3, INC4...}
usr4 {INC1, INC2, INC3, INC4...}
期望的输出:
Name Value
---- -----
usr1 {INC1, INC5}
usr2 {INC2, INC6}
usr3 {INC3}
usr4 {INC4}
我需要以相同的方式将数组 B 中的项目分配给数组 A 成员。也就是说,$B
应该将 的元素$A
一个接一个地收集在以元素命名的哈希表条目中,直到没有更多$B
的项目被留下。
我在上面的代码中做错了什么?
解决方案
使用模运算符 ( %
) 在末尾“环绕”任何超过最小数组长度的值:
$table = [ordered] @{}
for($i = 0; $i -lt $B.Count; $i++){
$table[$A[$i % $A.Count]] += @($B[$i])
}
推荐阅读
- amazon-sqs - CloudWatch 事件指标 - DeadLetterInvocations
- python - 在 Docker 中使用 Xlib.display 包时出错
- javascript - 这两种语法有什么区别
- scripting - grep 输出的最后几行
- qt - 如何在不使用 QCustomPlot 的情况下在 Qt 中创建实时散点图?
- django - Django 表单字段验证不起作用且没有错误
- javascript - 多个 IF 创建元素 Javascript
- aws-iot - 使用 aws-sdk-go-v2 的 AWS-IOT 工作示例
- graph-theory - 在无向无环图中找到最长回文路径的长度
- string - 如何在 Powershell 中获取字符串的特定部分