JavaScript中如何将含字符串数组格式的数组转为二维数组?
解决字符串数组转二维数值数组的问题
你的代码存在几个问题:
- 初始输入定义错误:你描述的输入是数组
['[1,2,3]','[1,2,3]','[1,2,3]'],但代码里写成了字符串'[1,2,3],[1,2,3],[1,2,3]' split('[]')逻辑错误:原字符串中不存在[]子串,拆分后无法得到预期的元素列表forEach中的赋值逻辑错误:每次覆盖args[0],且Array(x)无法将字符串数组转成数值数组
针对你描述的输入数组(['[1,2,3]','[1,2,3]','[1,2,3]'])的解决方案
直接使用map配合JSON.parse转换每个元素即可,因为每个元素都是合法的JSON数组字符串:
const input = ['[1,2,3]','[1,2,3]','[1,2,3]']; const result = input.map(item => JSON.parse(item)); console.log(result); // 输出 [[1,2,3],[1,2,3],[1,2,3]]
针对你代码中输入字符串('[1,2,3],[1,2,3],[1,2,3]')的解决方案
给整个字符串包裹一层[],使其成为合法的JSON数组字符串,再用JSON.parse解析:
const args = '[1,2,3],[1,2,3],[1,2,3]'; const result = JSON.parse(`[${args}]`); console.log(result); // 输出 [[1,2,3],[1,2,3],[1,2,3]]
JSON.parse是处理这类格式转换最可靠的方法,它能直接将符合JSON规范的字符串转换成对应的JavaScript数组或对象。
内容的提问来源于stack exchange,提问作者Arya Shah
相关产品推荐
相关产品推荐

