Pour diviser une chaîne, le code split method peut être utilisé. Split accepte comme paramètre le délimiteur que vous voulez diviser, dans votre cas, la virgule et le tuyau. Il renvoie un tableau d'objets trouvés avant et après le délimiteur (qui finit par être un tableau de taille supérieure au nombre de fois que le délimiteur apparaît).
Pour ajouter un objet à un tableau à la volée afin de créer vos a1 et a2, utilisez push. Push ajoute un objet à la fin d'un tableau.
Pour obtenir une chaîne de vos deux tableaux avec des virgules séparant chacun, utilisez join. Join prend un tableau et renvoie une chaîne avec quel que soit votre argument séparant chaque entrée.
var a1 = [];
var a2 = [];
var firstGrouping = a.split(",");
var firstGroupingLength = firstGrouping.length;
for(var i = 0; i < firstGroupingLength; i++) {
var secondGrouping = firstGrouping[i].split("|");
a1.push(secondGrouping[0]);
a2.push(secondGrouping[1]);
}
var a1String = a1.join(',');
var a2String = a2.join(',');
de généraliser le code ci-dessus pour permettre à des articles plus groupés autour du tube (par exemple une chaîne d'entrée var a = "1870|Z26|A00,1871|Z25|A01"
), au lieu de considérer a1 et a2 un tableau de tableaux qui est construit dynamiquement.
Ceci est simplement un cas de [fractionnement d'une chaîne] (http://stackoverflow.com/questions/96428/how-do-i-split-this-string-with-javascript) deux fois, puis [joindre une partie de les tableaux] (http://stackoverflow.com/questions/1353579/javascript-array-element-to-string). Je ne sais pas si cela compte comme un doublon, mais c'est terriblement proche. – jball