过滤哈希表数组

时间:2019-10-09 13:13:37

标签: powershell

我有一个哈希表数组,我正在尝试将其过滤为那些属性值为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的元素,而无需将其添加到另一个数组中。

1 个答案:

答案 0 :(得分:1)

只需将数组像这样通过管道传递到Where-Object中:

$array = @(
    @{ Name = 'First'; Passed = $True }
    @{ Name = 'First'; Passed = $False }
)

$array = $array | Where-Object Passed -EQ $True