Ruby 将数组中的元素按2连接

Ruby 将数组中的元素按2连接,ruby,arrays,join,Ruby,Arrays,Join,我的数组如下所示: arr=[“对象1”,3,“对象2”,6] 如何创建下面的预期输出?有没有一种简单的方法可以使用join 对象1(x3)、对象2(x6)。数组与字符串之间没有逻辑转换,因此我认为您应该重新考虑所有问题。 但你可以做到 arr.each_slice(2). # get every two elements map { |top| "#{top.first} (x#{top.last})" }. # create a string for each pair j

我的数组如下所示:

arr=[“对象1”,3,“对象2”,6]

如何创建下面的预期输出?有没有一种简单的方法可以使用
join

对象1(x3)、对象2(x6)。

数组与字符串之间没有逻辑转换,因此我认为您应该重新考虑所有问题。
但你可以做到

arr.each_slice(2). # get every two elements
    map { |top| "#{top.first} (x#{top.last})" }.  # create a string for each pair
    join(', ')    # join them by a comma.
# => "object 1 (x3), object 2 (x6)"
没有从数组到字符串的逻辑转换,因此我认为您应该重新考虑这一切。
但你可以做到

arr.each_slice(2). # get every two elements
    map { |top| "#{top.first} (x#{top.last})" }.  # create a string for each pair
    join(', ')    # join them by a comma.
# => "object 1 (x3), object 2 (x6)"

我真的不知道这是怎么回事,你能再解释一下吗?我得到了加入…@KyleAdams现在呢?你可以这样使用
map
.map{a,b}“{a}(x{b})”}
我不确定这是怎么回事,你能再解释一下吗?我得到了连接…@KyleAdams现在呢?你可以这样使用
map
.map{a,b}“{a}(x{b})”}
我想你需要一个
散列
来处理这样的数据。散列不会被唤醒,因为一些键可能是相同的,但值总是不同的。然后,用一个带有“key”的数组代替散列后跟包含“值”的子数组。使用平面数组会起作用,但最好在可能的情况下组织和分组数据。我认为这样的数据需要一个
hash
。hash不会唤醒,因为某些键可能相同,但值总是不同。然后,使用一个数组代替hash,该数组的“键”后跟包含“值”的子数组。使用平面阵列可以工作,但最好尽可能组织和分组数据。