Powershell 哈希表的过滤器数组
我有一个哈希表数组,我试图将它过滤到那些属性值为true的人,但我所做的看起来并不好Powershell 哈希表的过滤器数组,powershell,Powershell,我有一个哈希表数组,我试图将它过滤到那些属性值为true的人,但我所做的看起来并不好 # object looks like this $array = @( @{ Name = 'First'; Passed = $true } @{ Name = 'Second'; Passed = $false } ) function Filter { Param($array) $filtered = @() foreach ($item in $array
# object looks like this
$array = @(
@{ Name = 'First'; Passed = $true }
@{ Name = 'Second'; Passed = $false }
)
function Filter {
Param($array)
$filtered = @()
foreach ($item in $array) {
if ($item.Passed = $true) {
$filtered += $item
}
}
return $filtered
}
是否有其他方法可以获取所有传递了property=$True的元素,而无需将这些元素添加到另一个数组中。只需将数组导入Where对象,如下所示:
$array = @(
@{ Name = 'First'; Passed = $True }
@{ Name = 'First'; Passed = $False }
)
$array = $array | Where-Object Passed -EQ $True
$newarray=@$array |其中的对象{$\.Passed}@AnsgarWiechers不会捕获任何具有真实传递的对象吗?i、 e.不仅仅是那些值为$true@MikeShepard对但是,由于键似乎只有布尔值,这不应该是一个问题。否则,请将条件更改为$\已传递-eq$true。请注意,如果Where对象筛选器返回的项少于2项,则不会给出数组结果。很好,将其更改为$array=@$array | Where Object Passed-eq$true可以解决这一问题。