我有一个哈希表数组,我正在尝试将其过滤为那些属性值为true的人,但这在我看来并不好。
# 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
}
还有其他方法可以获取所有具有属性Passed = $True
的元素,而无需将其添加到另一个数组中。
答案 0 :(得分:1)
只需将数组像这样通过管道传递到Where-Object中:
$array = @(
@{ Name = 'First'; Passed = $True }
@{ Name = 'First'; Passed = $False }
)
$array = $array | Where-Object Passed -EQ $True