如何将二维数组的列以换行符合并为单行数组
说明: 我的问题已解决,@kennarddh的回答帮我打破了思维瓶颈。若您仍感兴趣可继续阅读。
问题需求
现有如下二维数组:
const data = [ ['A', 'B', 'C', ''], ['D', 'E', 'F', 'G'] ]
需要将每一列的各行元素用换行符\n拼接,最终合并为仅含单行的新数组。
预期输出:
const result = [ ['A\nD', 'B\nE', 'C\nF', '\nG'] ]
背景场景
我处理多个Excel数据文件时,多数文件格式一致,但部分存在差异。当文件格式不符合预期时,我会用模糊搜索工具Fuse.js查找工作表中的目标单元格,但Fuse.js要求输入为字符串列表,因此需要将单元格的二维结构转换为一维字符串列表。
由于人为操作的惰性,部分数据表头会跨两行或多行,比如区分“含税价格”“不含税价格”这类相似数据时:
const fileData = [ [], ['some', 'irrelevant', 'data'], [''], ['', '', 'vat'], // <-- 表头起始行 ['product', 'price', 'price'], // <-- 表头结束行 ['data', 'data', 'data'], // <-- 数据起始行 ['data', 'data', 'data'], // <-- 数据结束行 [''], ]
这种情况下,仅搜索表头关键词:
'price'
会返回两个无法区分的结果。
如果将多行表头用换行符\n合并:
const merged = [ ['\nproduct', '\nprice', 'vat\nprice'] ]
就能得到可区分的唯一表头列表,便于后续精准搜索。需要按此方式处理fileData后再进行搜索操作。
结合配置文件中预设的目标表头,我可以搜索:
'\nprice'
或
'vat\nprice'
来定位表头的列位置,从而更准确地从文件对应位置导入目标数据。
内容的提问来源于stack exchange,提问作者kiroshiro
相关产品推荐
相关产品推荐

