仅在(例如)key == :b
的情况下,我想在map方法内两次返回一个值)>
我有这样的东西:
{a: 1, b: 2, c: 3}.map{ |x| x } # => [[:a, 1], [:b, 2], [:c, 3]]
我想创建这个:
# => [[:a, 1], [:b, 2], [:b, 2], [:c, 3]]
我尝试过:
output = {a: 1, b: 2, c: 3}.map{ |x| x.first == :b ? [x,x] : x } # => [[:a, 1], [[:b, 2], [:b, 2]], [:c, 3]] output.flatten # => [:a, 1, :b, 2, :b, 2, :c, 3] output.flatten(1) # => [:a, 1, [:b, 2], [:b, 2], :c, 3]
有什么想法吗?
我想在map方法内两次返回一个值,只有在键==:b的情况下,我才是这样的:{a:1,b:2,c:3} .map {| x | x}#=> [[:: a,1],[:b,2],[:c,3]] I ...
您可以将其写成一行{a: 1, b: 2, c: 3}.map{ |x| x.first == :b ? [x,x] : [x] }.flatten(1)
{a: 1, b: 2, c: 3}.map{ |x| x.first == :b ? [x,x] : [x] }.flatten(1)