【发布时间】:2021-08-04 04:58:55
【问题描述】:
假设我有一个 2D 数组,其中填充了很多空白,但这些空白之间包含较小的独立 2D 数组。例如:
var aVO = [
["col1", "col2", "col3", "col4", "col5", "col6", "col7", "col8", "col9"],
["", "", "", "", "", "", "", "", ""],
[1, 2, 3, "", "", "", "", "", ""],
[4, 5, 6, "", "", "a", "b", "", ""],
[7, 8, 9, "", "", "c", "d", "", 1],
["", "", "", "", "", "", "", "", 2],
["", "", "z", "y", "", "", "", "", 3],
["", "x", "w", "v", "", 7, 7, 7, ""],
["", "", "", "", "", "", "", "", ""],
["", "", "", "", "", "", "", "", ""],
["", "A1", "B1", "", "", "", "", "", ""],
["", "A2", "B2", "C2", "", "", "HELLO", "", ""]
]
我有兴趣将其转换为 8 个二维数组:
[["col1", "col2", "col3", "col4", "col5", "col6", "col7", "col8", "col9"]]
[[1,2,3],[4,5,6],[7,8,9]]
[["a","b"],["c","d"]]
[[1],[2],[3]]
[["", "z","y"],["x","w", "v"]]
[[7,7,7]]
[["A1","B1",""],["A2","B2","C2"]]
[["HELLO"]]
提取这些较小的二维数组的最佳方法是什么?我正在考虑逐行迭代,但很难想象如何优雅地提取像[["", "z","y"],["x","w","v"]] 这样的数据(注意“x”如何不在“z”的正下方,因此生成的二维数组需要反映这种转变)。感谢您的帮助!
【问题讨论】:
-
您要对这些元素进行分组的逻辑非常不清楚,因此请首先正确解释。
-
@CBroe 数据包含值的“孤岛”,由空字符串分隔。 OP想要提取这些岛屿。结果应该是一个恒定行大小的二维数组列表,这解释了为什么需要包含
z y行中的空字符串。
标签: javascript arrays parsing