如何将多层嵌套的字符串格式数组转换为纯数字一维数组,尽量减少循环
实现方案
核心思路:在拍平数组外层结构后,将每个字符串格式的数组解析为真实数字数组,再二次拍平即可得到目标结果,全程无需手动编写循环。
最简代码实现
const nested_list = [ ["[63]"], ["[61]"], ["[7]"], ["[63]"], ["[80, 18]"], ["[80, 43, 18, 20]"] ]; // 最终结果 const res = nested_list.flat().flatMap(item => JSON.parse(item));
步骤说明
- 先用
nested_list.flat()把外层二维数组拍平,得到一维字符串数组:[ '[63]', '[61]', '[7]', '[63]', '[80, 18]', '[80, 43, 18, 20]' ] - 调用
flatMap方法,遍历每个字符串元素,用JSON.parse()将字符串转为数字数组,同时自动完成1层拍平,直接得到一维纯数字数组。
其他可选写法
如果你更习惯用reduce+concat的组合,补充parse步骤即可生效:
const res = nested_list.flat().reduce((acc, cur) => acc.concat(JSON.parse(cur)), [])
内容的提问来源于stack exchange,提问作者salRad
相关产品推荐
相关产品推荐

