JavaScript如何按~拆分字符串并生成带双引号元素的二维数组
实现方案
核心处理逻辑
- 先按
~拆分原始字符串,过滤掉拆分产生的空片段(由字符串末尾的~导致) - 遍历每个有效片段,按
,拆分得到单段的所有元素 - 对每个元素先移除原有的首尾双引号(避免表头自带的双引号重复包裹),再统一添加双引号
- 若需要跳过前两行(表头+第一条数据)可在过滤空片段后加
.slice(2)即可
完整可运行代码
const rawStr = `"ITEM1","ITEM2","ITEM3","ITEM4","ITEM5","ITEM6","ITEM7"~100000000,1000048,0010041,1,1,1,1~100000001,1000050,,2,0,2,1~100000002,1068832,0010124,1,1,1,1~100000003,1143748,0010165,1,1,1,1~100000004,,0010173,1,2,1,1~100000005,,0010199,2,2,2,1~100000006,,0010215,1,2,1,1~100000007,,0010306,0,2,1,1~100000008,1092546,0010355,1,1,1,1~100000009,1037977,,2,1,2,1~`; const twoDimensionalArray = rawStr.split('~') // 过滤拆分出的空字符串 .filter(segment => segment.length > 0) // 如需跳过前两行(表头+首条数据)可取消注释下一行 // .slice(2) .map(segment => { // 拆分单段为元素数组,统一包裹双引号 return segment.split(',').map(item => `"${item.replace(/^"|"$/g, '')}"`) }); console.log(twoDimensionalArray);
原代码问题说明
你之前仅完成了按~拆分+截取片段的操作,没有对每个片段做二次拆分、也没有处理元素的双引号统一包裹逻辑,因此无法生成符合要求的二维数组。
内容的提问来源于stack exchange,提问作者Matarishvan
相关产品推荐
相关产品推荐

