javascript: tableau à partir d'un string

javascript: tableau à partir d'un string - HTML/CSS - Programmation

Marsh Posté le 06-04-2006 à 11:30:38    

Hello,
 
récupérant une chaine de caractère via XMLHttpRequest, j'ai besion d'en faire un tableau en javascript... je peux former la chaine comme je veux et il s'agit d'une liste de logins mais je ne sais pas comment en faire un tableau...
 
la seule solution que j'entrevoie serait avec des substring... mais ca me parait bien lourd... y'a t-il plus simple ?

Reply

Marsh Posté le 06-04-2006 à 11:30:38   

Reply

Marsh Posté le 06-04-2006 à 12:14:13    

Mais non c'est pas lourd.
Une petite boucle et des substrings n'ont jamais tué personne.
Allez, courage !

Reply

Marsh Posté le 06-04-2006 à 12:28:28    

oui enfin bon en même temps y'a split qui existe pour ça!!!
Admettons tu sépares tes logins par des ";" après t'as plus qu'a faire:

Code :
  1. var tonTableau = taReponse.split(';');


 
edit: orthographe qui pique les yeux


Message édité par anapajari le 06-04-2006 à 12:29:02
Reply

Marsh Posté le 06-04-2006 à 12:50:23    

Oui, tu as raison anapajari, il existe le split que j'avais oublié.
Merci de me l'avoir rappelé, parce que j'en aurais peut-être besoin moi-même.
 
Entre temps, j'avais trouvé une fonction apppelée customSplit sur http://www.tneoh.zoneit.com/javascript/js_func.html , et que voici, au cas où le split ordinaire ne serait pas suffisant :

Syntax : customSplit(strValue, separator, strArrayName)
strValue is the string to be splited with separator as the delimeter. After spliting, array of strings are stored in new "Array" object, strArrayName.  
 
function customSplit(strvalue, separator, arrayName) {
  var n = 0;
 
  if (separator.length != 0) {
    while (strvalue.indexOf(separator) != -1) {
      eval("arr"+n+" = strvalue.substring(0, strvalue.indexOf(separator));" );
      strvalue = strvalue.substring(strvalue.indexOf(separator)+separator.length,
          strvalue.length+1);
      n++;
    }
    eval("arr" + n + " = strvalue;" );
    arraySize = n+1;
  }
  else {
    for (var x = 0; x < strvalue.length; x++) {
      eval("arr"+n+" = \"" + strvalue.substring(x, x+1) + "\";" );
      n++;
    }
    arraySize = n;
  }
 
  eval(arrayName + " = new makeArray(arraySize);" );
 
  for (var i = 0; i < arraySize; i++)
    eval(arrayName + "[" + i + "] = arr" + i + ";" );
 
  return arraySize;
}
 
Examples
var strvalue = "abc##123##zzz##$$$";
var returnArraySize = customSplit(strvalue, "##", "NewArray" );
The above will create the following:
NewArray[0] has value "abc"
NewArray[1] has value "123"
NewArray[2] has value "zzz"
NewArray[3] has value "$$$"
returnArraySize      has value "4"


Message édité par olivthill le 06-04-2006 à 12:50:43
Reply

Marsh Posté le 06-04-2006 à 13:48:38    

Mais oui bien sûr!
 
j'avais complètement oublié ce split()...
 
Merci !!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed