将字符串解析为 javascript 中的二维整数数组

Parse string into 2d integer array in 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);