Arrays 如何将相同的项添加到Ruby数组中的每个项?
我有一个日期,存储为字符串Arrays 如何将相同的项添加到Ruby数组中的每个项?,arrays,ruby,Arrays,Ruby,我有一个日期,存储为字符串 date_added=“2019-12-28620:32:27Z” 我需要将其添加到数组中的每个项中 tracks=[“6tilpznhyaqcpivolkxrv”,“5sKHRsDybtkw6lxufkyk08”,“0ZWBuv544C0STkXfYb9Sd5”] 因此,最终输出应为: [“6TilpzhenhyaQCPIVFolkxRV”,“2019-12-28T20:32:27Z”],[“5SKHRSDYBTKW6LXUFKK08”,“2019-12-28T
date_added=“2019-12-28620:32:27Z”
我需要将其添加到数组中的每个项中
tracks=[“6tilpznhyaqcpivolkxrv”,“5sKHRsDybtkw6lxufkyk08”,“0ZWBuv544C0STkXfYb9Sd5”]
因此,最终输出应为:
[“6TilpzhenhyaQCPIVFolkxRV”,“2019-12-28T20:32:27Z”],[“5SKHRSDYBTKW6LXUFKK08”,“2019-12-28T20:32:27Z”],[“0ZWBuv544C0STkXfYb9Sd5”,“2019-12-28T20:32:27Z”]
如何将该日期项添加到数组中的每个项?我已经查看了
zip
和push
,但是没有得到想要的结果。tracks数组包含字符串,而最终输出包含其他数组。这些是不同的类,因为您无法更改对象的类,“添加”到现有项实际上不起作用。您必须创建由一个旧元素(字符串)和添加的日期(另一个字符串)组成的新元素(数组)
您可以使用并让Ruby将曲目
与[date\u added]
组合:
tracks.product([date_added])
#=> [["6tIlpznHyaqCPiVfolKxrV", "2019-12-28T20:32:27Z"],
# ["5sKHRsDybtkw6lxufkyk08", "2019-12-28T20:32:27Z"],
# ["0ZWBuv544C0STkXfYb9Sd5", "2019-12-28T20:32:27Z"]]
或用于创建子阵列:
tracks.map { |t| [t, date_added] }
#=> [["6tIlpznHyaqCPiVfolKxrV", "2019-12-28T20:32:27Z"],
# ["5sKHRsDybtkw6lxufkyk08", "2019-12-28T20:32:27Z"],
# ["0ZWBuv544C0STkXfYb9Sd5", "2019-12-28T20:32:27Z"]]
跟踪
数组包含字符串,而最终输出包含其他数组。这些是不同的类,因为您无法更改对象的类,“添加”到现有项实际上不起作用。您必须创建由一个旧元素(字符串)和添加的日期(另一个字符串)组成的新元素(数组)
您可以使用并让Ruby将曲目
与[date\u added]
组合:
tracks.product([date_added])
#=> [["6tIlpznHyaqCPiVfolKxrV", "2019-12-28T20:32:27Z"],
# ["5sKHRsDybtkw6lxufkyk08", "2019-12-28T20:32:27Z"],
# ["0ZWBuv544C0STkXfYb9Sd5", "2019-12-28T20:32:27Z"]]
或用于创建子阵列:
tracks.map { |t| [t, date_added] }
#=> [["6tIlpznHyaqCPiVfolKxrV", "2019-12-28T20:32:27Z"],
# ["5sKHRsDybtkw6lxufkyk08", "2019-12-28T20:32:27Z"],
# ["0ZWBuv544C0STkXfYb9Sd5", "2019-12-28T20:32:27Z"]]
请记录在案:
date_added = "2019-12-28T20:32:27Z"
racks = ["6tIlpznHyaqCPiVfolKxrV", "5sKHRsDybtkw6lxufkyk08", "0ZWBuv544C0STkXfYb9Sd5"]
racks.zip([date_added] * racks.size)
# => [["6tIlpznHyaqCPiVfolKxrV", "2019-12-28T20:32:27Z"],
# ["5sKHRsDybtkw6lxufkyk08", "2019-12-28T20:32:27Z"],
# ["0ZWBuv544C0STkXfYb9Sd5", "2019-12-28T20:32:27Z"]]
但是,如果可能的话,我不会像zip
或product
那样对数组进行按摩,从而用冗余信息扩展其大小。相反,我会在访问每个元素时对其进行按摩,以确定日期,例如:
racks.each do |r|
foo([r, date_added])
end
最终结果将是@Stefan建议使用map
的结果,只要您没有将map
结果存储在中间值中。仅供记录:
date_added = "2019-12-28T20:32:27Z"
racks = ["6tIlpznHyaqCPiVfolKxrV", "5sKHRsDybtkw6lxufkyk08", "0ZWBuv544C0STkXfYb9Sd5"]
racks.zip([date_added] * racks.size)
# => [["6tIlpznHyaqCPiVfolKxrV", "2019-12-28T20:32:27Z"],
# ["5sKHRsDybtkw6lxufkyk08", "2019-12-28T20:32:27Z"],
# ["0ZWBuv544C0STkXfYb9Sd5", "2019-12-28T20:32:27Z"]]
但是,如果可能的话,我不会像zip
或product
那样对数组进行按摩,从而用冗余信息扩展其大小。相反,我会在访问每个元素时对其进行按摩,以确定日期,例如:
racks.each do |r|
foo([r, date_added])
end
最终结果将是@Stefan建议使用
map
,只要您没有将map
结果存储在中间值中。我们希望看到您尝试解决此问题。“我们希望看到你试图解决这个问题。“”根据偏好racks.zip([date\u added]*racks.size)
可以替换为racks.zip([date\u added].cycle)
。酷!我从来没有想过像那样使用cycle
。根据偏好racks.zip([date\u added]*racks.size)
可以替换为racks.zip([date\u added].cycle)
。酷!我从来没有想过像那样使用cycle
。