arrays - 基于元素值的 Ruby 数组到子数组
问题描述
我正在尝试解析一个文本文件,并希望得到一些 Ruby 帮助,基于对某些值的搜索和过滤,将数组转换为一系列子数组,主要是零的存在。在这种情况下,每个子数组应该只包含一对 00Mom 和 00Dad 加上后面没有零的元素(例如孩子),但不包括 00Mom 和 00Dad 的下一个实例——这将进入下一个子数组.
例如,使用此数组:
array1 = ["00Mom1", "00Dad1", "Kid1", "Kid2", "00Mom2", "00Dad2", "Child1", "Child2", "00Mom3", "Youngin1"]
我想输出这个子数组数组:
array2 = [["00Mom1", "00Dad1", "Kid1", "Kid2"], ["00Mom2", "00Dad2", "Child1", "Child2"], ["00Mom3", "Youngin1"]]
我的第一个想法是在计数中使用“00”,但我无法让它工作。我认为解决方案可能是使用嵌套数组,但不确定。这就是我到目前为止所拥有的。
array1 = ["00Mom1", "00Dad1", "Kid1", "Kid2", "00Mom2", "00Dad2", "Child1", "Child2", "00Mom3", "Youngin1"]
zero_count = 0
array2 = []
new_array = []
subarray_count = 0
array1.map do |z|
if z[0] == "0"
zero_count = zero_count + 1
end
if zero_count == 3
new_array = array1.slice(0, subarray_count)
zero_count = 1
subarray_count = 0
array2 << new_array
end
subarray_count = subarray_count + 1
end
p array2
输出:
[["00Mom1", "00Dad1", "Kid1", "Kid2"], ["00Mom1", "00Dad1", "Kid1", "Kid2"]]
但是我需要:
[["00Mom1", "00Dad1", "Kid1", "Kid2"], ["00Mom2", "00Dad2", "Child1", "Child2"], ["00Mom3", "Youngin1"]]
有任何想法吗?谢谢。
解决方案
推荐阅读
- javascript - 使用不四舍五入的 Intl.NumberFormat
- python - Heroku:从非主源分支推送更新
- single-sign-on - 连接问题:Databricks - 雪花
- javascript - 如何访问 JSON 中的第一个或第二个对象
- c++ - 无法将 OpenCV Mat 转换为 dlib array2D
- docker - 带有 URL 路径的 Docker
- python - Python 请求在特定 HTTPS 站点上失败,尽管其证书有效
- amazon-web-services - 对 pod 使用安全组时无法从 eks 节点访问 pod
- ansible - Ansible - 组合数据以获得单个输出或组
- python - MQL4 如何与 python 通信?