2010-12-16 4 views
2

Comment je peux diviser une chaîne en tableau 2D. La chaîne est commeDiviser en tableau 2D

1c2c3r4c5c6r6c8c9 

tableau SHLD être comme

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

Répondre

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

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

S'il vous plaît noter que je n'ai pas testé cela, il pourrait donc contenir une erreur de syntaxe ou quelque chose ...

1

Cette devrait fonctionner:

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; 
} 
3

Vous pouvez n utiliser la méthode de la carte sur Array

var s = "1c2c3r4c5c6r6c8c9"; 
var rows = s.split("r"); 
result = rows.map(function (x) { 
    return x.split('c'); 
})); 

map est introduit dans ECMAScript5 et n'est pas pris en charge dans les navigateurs plus anciens. Mais, il y a un travail décent autour here

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

résultat devrait être ce que vous voulez.