Puppet 周期中的木偶在数组中添加了空元素

Puppet 周期中的木偶在数组中添加了空元素,puppet,Puppet,如何确保数组中没有空元素?这里的问题是,当您真正想要使用时,您正在使用maplambda函数。链接文档的摘要如下所示: 将lambda应用于数据结构中的每个值,并返回包含lambda计算结果为true的任何元素的数组或哈希 因此,您的解决方案是: $hash_arr_1 = { b => 2, c => 3, f => 1 } $arr = ['a', 'c', 'd', 'f', 'e'] $hash_arr_2 = $arr.map |$param| { if has

如何确保数组中没有空元素?

这里的问题是,当您真正想要使用时,您正在使用
map
lambda函数。链接文档的摘要如下所示:

将lambda应用于数据结构中的每个值,并返回包含lambda计算结果为true的任何元素的数组或哈希

因此,您的解决方案是:

$hash_arr_1 = { b => 2, c => 3, f => 1 }
$arr = ['a', 'c', 'd', 'f', 'e']
$hash_arr_2 = $arr.map |$param| {
   if has_key($hash_arr_1, $param) {
      {$param => $hash_arr_1[$param]}
    }
}
notice($hash_arr_2)

Result: [{   , c => 3,    , f => 1,   ,}]
这将遍历哈希
$hash\u arr\u 1
的键,使用提供的条件检查该键是否作为数组
$arr
的成员存在,然后返回一个哈希,其中仅包含计算为true的键值对

$hash_arr_2 = $hash_arr_1.filter |$key, $value| { $key in $arr }