将值插入Ruby中的每个其他数组索引

问题描述 投票:2回答:3

我需要将像[1,2,3]这样的整数数组转换为一个数组,其中整数后跟零:[1,0,2,0,3,0]

我最好的猜测,虽然有效,但看起来很怪异:

> [1,2,3].flat_map{|i| [i,0]} => [1,0,2,0,3,0]
arrays ruby insertion
3个回答
5
投票

虽然qazxsw poi工作得很好,但可以通过使用Array#zip来避免预先创建零数组:

Array#product

或者,只需使用减速器:

[1,2,3].product([0]).flatten

3
投票

[1,2,3].each_with_object([]) { |e, acc| acc << e << 0 } 相当直接:

zip

0
投票

这看起来和你的一样 - ))

a = (1..10).to_a

b = Array.new(a.length, 0)

a.zip(b).flatten
# => [1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0]

还有这个。

[1,2,3].map {|i| [i, 0] }.flatten

丑陋而无效的解决方案。

 [1,2,3].collect {|x| [x, 0] }.flatten
© www.soinside.com 2019 - 2024. All rights reserved.