ruby-on-rails – RoR / Ruby从嵌套数组中删除nil个元素
发布时间:2020-12-16 20:40:04 所属栏目:百科 来源:网络整理
导读:要将阵列分成两个相等的部分,我会这样做, a = [1,2,3,4,5]= [1,5] a.in_groups_of( (a.size/2.0).ceil ) if a.size 0= [[1,3],[4,5,nil]] 现在我有一个包含nil元素的嵌套数组,如果数组的大小是奇数.如何从嵌套数组中删除零元素?我想做点像, a.compact 但不
要将阵列分成两个相等的部分,我会这样做,
>> a = [1,2,3,4,5] => [1,5] >> a.in_groups_of( (a.size/2.0).ceil ) if a.size > 0 => [[1,3],[4,5,nil]] 现在我有一个包含nil元素的嵌套数组,如果数组的大小是奇数.如何从嵌套数组中删除零元素?我想做点像, a.compact 但不幸的是,这不行,ruby只会在第一级删除nil元素,而不是递归. ruby为这个问题提供了很好的解决方案吗? 解决方法
使用Ruby 1.8.7及更高版本,您可以执行以下操作:
a.each &:compact! => [[1,5]] 使用Ruby 1.8.6,您可以做很长的路: a.each {|s| s.compact!} 这两个都将修改a的内容.如果要返回一个新的数组并将其保留原来,可以使用collect而不是每个数组: # 1.8.7+: a.collect &:compact # 1.8.6: a.collect {|s| s.compact} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |