拆分为2D数组

时间:2010-12-16 07:08:50

标签: javascript

如何将字符串拆分为2D数组。字符串就像

1c2c3r4c5c6r6c8c9

数组应该像

[[1,2,3],
[4,5,6],
[7,8,9]]

4 个答案:

答案 0 :(得分:3)

var src = "1c2c3r4c5c6r6c8c9";
var rows = src.split(/r/);

for (var i = 0; i < rows.length; i++)
    rows[i] = rows[i].split(/c/);

请注意,我没有对此进行测试,因此可能包含语法错误或其他内容......

答案 1 :(得分:3)

您可以在Array

上使用地图方法
var s = "1c2c3r4c5c6r6c8c9";
var rows = s.split("r");
result = rows.map(function (x) {
    return x.split('c');
}));

map在ECMAScript5中引入,在旧版浏览器中不受支持。但是,有一个体面的工作here

答案 2 :(得分:2)

var str = "1c2c3r4c5c6r6c8c9";
var result = [];
var group = str.split("r");
for(i in group) {result.push(group[i].split("c"))};

结果应该是你想要的。

答案 3 :(得分:1)

这应该有效:

var src = "1c2c3r4c5c6r6c8c9";
var rows = src.split(/r/g);

for (var i = 0; i < rows.length; i++) {
    var cells = rows[i].split(/c/g);
    for (var j = 0; j < cells.length; j++) {
        cells[j] = parseInt(cells[j]);
    }
    rows[i] = cells;
}