javascript - 在javascript中将字符串解析为二维整数数组
问题描述
我需要解析这个字符串
d = "1 3 2 1,1 1 2 4,1 1 2 5,1 1 2 6,1 7 2 1,1 8 2 1,1 9 2 1,1 1 3 4,1 1 3 5,1 1 3 6,1 7 3 1,1 1 3 8,1 1 3 9,1 5 4 1,1 6 4 1,1 7 4 1,1 1 4 8,1 1 4 9,1 6 5 1,1 7 5 1,1 1 5 8,1 9 5 1,1 7 6 1,1 8 6 1,1 1 6 9,1 1 7 8,1 9 7 1,1 9 8 1,1 4 3 2,1 2 3 5,1 6 3 2,1 2 3 7,1 2 3 8,1 9 3 2,1 2 4 5,1 2 4 6,1 7 4 2,1 8 4 2,1 2 4 9,1 6 5 2,1 2 5 7,1 2 5 8,1 2 5 9,1 2 6 7,1 2 6 8,1 9 6 2,1 8 7 2,1 2 7 9,1 2 8 9,1 5 4 3,1 3 4 6,1 3 4 7,1 8 4 3,1 3 4 9,1 6 5 3,1 3 5 7,1 3 5 8,1 3 5 9,1 7 6 3,1 3 6 8,1 3 6 9,1 8 7 3,1 3 7 9,1 9 8 3,1 4 5 6,1 4 5 7,1 4 5 8,1 9 5 4,1 7 6 4,1 4 6 8,1 9 6 4,1 4 7 8,1 4 7 9,1 4 8 9,1 7 6 5,1 5 6 8,1 5 6 9,1 8 7 5,1 9 7 5,1 5 8 9,1 6 7 8,1 9 7 6,1 6 8 9,1 9 8 7"
进入一个看起来像这样的二维数组:
d = [[1,3,2,1][1,2,3,4],[1,2,3,4]...... and so on]
其中字符串被转换为单个整数。
有人能在 10 行或更少的时间内做到这一点吗?我已经想通了,但是我的代码一团糟,必须比需要的更长
编辑 - 这是我蹩脚的代码:
let ds = d.split(",");
let temp = [];
for (i= 0; i<=ds.length; i++){
temp.push([ds[i]])
}
let set = [];
for (i= 0; i<=temp.length-1; i++){
let t2 = temp[i].toString();
let t3 = t2.split(" ")
set.push(t3);
}
for (i= 0; i<=set.length-1; i++){
for (j= 0; j<=3; j++){
set[i][j] = Number(set[i][j]);
}
}
console.log(set);
解决方案
用逗号分割,然后将每个子字符串映射到空格分割:
const d = "1 3 2 1,1 1 2 4,1 1 2 5,1 1 2 6,1 7 2 1,1 8 2 1,1 9 2 1,1 1 3 4,1 1 3 5,1 1 3 6,1 7 3 1,1 1 3 8,1 1 3 9,1 5 4 1,1 6 4 1,1 7 4 1,1 1 4 8,1 1 4 9,1 6 5 1,1 7 5 1,1 1 5 8,1 9 5 1,1 7 6 1,1 8 6 1,1 1 6 9,1 1 7 8,1 9 7 1,1 9 8 1,1 4 3 2,1 2 3 5,1 6 3 2,1 2 3 7,1 2 3 8,1 9 3 2,1 2 4 5,1 2 4 6,1 7 4 2,1 8 4 2,1 2 4 9,1 6 5 2,1 2 5 7,1 2 5 8,1 2 5 9,1 2 6 7,1 2 6 8,1 9 6 2,1 8 7 2,1 2 7 9,1 2 8 9,1 5 4 3,1 3 4 6,1 3 4 7,1 8 4 3,1 3 4 9,1 6 5 3,1 3 5 7,1 3 5 8,1 3 5 9,1 7 6 3,1 3 6 8,1 3 6 9,1 8 7 3,1 3 7 9,1 9 8 3,1 4 5 6,1 4 5 7,1 4 5 8,1 9 5 4,1 7 6 4,1 4 6 8,1 9 6 4,1 4 7 8,1 4 7 9,1 4 8 9,1 7 6 5,1 5 6 8,1 5 6 9,1 8 7 5,1 9 7 5,1 5 8 9,1 6 7 8,1 9 7 6,1 6 8 9,1 9 8 7";
const arr = d
.split(',')
.map(str => str
.split(' ')
.map(Number)
);
console.log(arr);
推荐阅读
- python - 如何避免带有日期时间列的 pandas mean() 性能不佳
- ios - 拖动关闭交互式过渡与平移手势不同步
- vue.js - 如何在轮播中实现 Vuetify touch prop。谢谢
- mysql - 如何使用 MYSQL Docker 容器编辑secure_file_priv
- asp.net - 创建一个解决方案并为仅在文件夹中包含代码的 ASP.net 网站运行它
- django - 在执行后端脚本时加载 gif
- selenium - 我如何调用 captureScreenshot 方法来报告错误?
- dependency-injection - 依赖注入、组合根和入口点
- python - 为什么我的代码在计算相关性时会产生值错误?
- google-cloud-platform - 如何使用 Terraform 在 GCP 中添加 DNS 记录?