如何将包含多个数组结构的字符串转换为扁平化一维数组
处理尺寸字符串实现方案
问题原因
直接调用JSON.parse(product.size)不生效的核心原因是原始字符串"[6],[8],[10],[12],[14],[16],[18]"不符合标准JSON数组格式,标准JSON数组的逗号分隔符是在数组元素之间,而非包裹每个元素的方括号之间。
实现代码
以下两种实现方式均可达到需求:
方式1:正则提取(推荐,容错性更高)
// 提取所有数字并转为数值数组 const sizeArray = product.size.match(/\d+/g).map(Number); // 生成目标展示文本 const showText = `Size - ${sizeArray.join(' ')}`;
方式2:字符替换后分割(逻辑直观易理解)
// 清空所有方括号后按逗号分割,转为数值数组 const sizeArray = product.size.replace(/\[|\]/g, '').split(',').map(Number); // 生成目标展示文本 const showText = `Size - ${sizeArray.join(' ')}`;
输出结果
两种方式最终得到的showText均为Size - 6 8 10 12 14 16 18,sizeArray为[6,8,10,12,14,16,18]的一维数组。
内容的提问来源于stack exchange,提问作者Shahab Dad Khan
相关产品推荐
相关产品推荐

