Ruby on rails 以交替模式排列阵列
我有一个哈希数组:Ruby on rails 以交替模式排列阵列,ruby-on-rails,arrays,ruby,sorting,Ruby On Rails,Arrays,Ruby,Sorting,我有一个哈希数组: [ {item0: 1.0, item1: 0.0}, {item0: 0.0, item1: 1.0}, {item0: 0.0, item1: 1.0}, {item0: 0.0, item1: 0.0} ] 我希望能够对数组进行排序,以便item1在1.0和0.0之间交替。将有相同数量的1和0 这怎么可能呢 array.sort_by{| x | x[item1]}未获得所需的输出 所需输出为: [ {item0: 1.0, item1: 0.
[
{item0: 1.0, item1: 0.0},
{item0: 0.0, item1: 1.0},
{item0: 0.0, item1: 1.0},
{item0: 0.0, item1: 0.0}
]
我希望能够对数组进行排序,以便item1
在1.0和0.0之间交替。将有相同数量的1和0
这怎么可能呢
array.sort_by{| x | x[item1]}
未获得所需的输出
所需输出为:
[
{item0: 1.0, item1: 0.0},
{item0: 0.0, item1: 1.0},
{item0: 0.0, item1: 0.0},
{item0: 0.0, item1: 1.0}
]
evens,赔率=my|u数组。分区{i | i[:item1]==0}
交替=[]
max=[evens.size,赔率.size].max
t=0
而t 我相信这会给你想要的
data = [{item0: 1.0, item1: 0.0},
{item0: 0.0, item1: 1.0},
{item0: 0.0, item1: 1.0},
{item0: 0.0, item1: 0.0}]
zeros, ones = data.partition{ |i| i[:item1] == 0 }
# This does the same
# ones = data.select { |x| x[:item1] == 1 }
# zeros = data.select { |x| x[:item1] == 0 }
ones.zip(zeros).flatten.compact
从这个中得到了想法这不是那个问题的重复。我不希望他们按顺序排列。我想让他们轮流。@Iceman是的,1.0和0.0的数字相同
data = [{item0: 1.0, item1: 0.0},
{item0: 0.0, item1: 1.0},
{item0: 0.0, item1: 1.0},
{item0: 0.0, item1: 0.0}]
zeros, ones = data.partition{ |i| i[:item1] == 0 }
# This does the same
# ones = data.select { |x| x[:item1] == 1 }
# zeros = data.select { |x| x[:item1] == 0 }
ones.zip(zeros).flatten.compact