2009-06-04 18 views
14

J'ai un tableau en javascript. Ce tableau a des chaînes qui contiennent des virgules (","). Je souhaite que toutes les virgules soient supprimées de ce tableau. Cela peut-il être fait?Remplacer la chaîne dans le tableau javascript

+0

Ne pouvez-vous pas filtrer les chaînes avant qu'elles ne soient poussées dans le tableau? Sinon, c'est juste une simple boucle. –

+0

J'ai essayé de faire mais les cordes viennent de l'autre endroit, dynamiquement. Mais peu importe, j'ai compris ce que je faisais de mal. Je quittais une virgule après chaque résultat db. J'étais convaincu que la poussée de matrice que je faisais ajoutait une virgule après chaque poussée. Je suis un démarreur dans JS. Merci quand même. –

+0

@MannyCalavera, voir ma réponse –

Répondre

38

Oui.

for(var i=0; i < arr.length; i++) { 
arr[i] = arr[i].replace(/,/g, ''); 
} 
+1

+1 pour être plus proche que moi mais vous devez faire quelque chose avec le résultat, remplacer ne mute pas la chaîne. – AnthonyWJones

+1

Désolé kekoav, Ne doit pas être: arr [i] = arr [i] .replace (/,/g, ''); ?? – tekBlues

+0

@tekBlues - oui, code mis à jour – Kekoa

0

Bien sûr, il vous suffit de parcourir la matrice et de procéder à un retrait standard à chaque itération.

Si la nature de votre tableau le permet, vous pouvez d'abord convertir le tableau en chaîne, supprimer les virgules, puis les convertir en tableau.

-1

Compte tenu de la chaîne requise dans la variable s: -

var result = s.replace(/,/g, ''); 
17

La meilleure façon est d'utiliser la fonction de nos jours map() ainsi:

var resultArr = arr.map(function(x){return x.replace(/,/g, '');}); 

c'est la norme ECMA-262. Si vous nee pour version antérieure, vous pouvez ajouter ce morceau de code dans votre projet:

if (!Array.prototype.map) 
{ 
    Array.prototype.map = function(fun /*, thisp*/) 
    { 
     var len = this.length; 
     if (typeof fun != "function") 
      throw new TypeError(); 

     var res = new Array(len); 
     var thisp = arguments[1]; 
     for (var i = 0; i < len; i++) 
     { 
      if (i in this) 
       res[i] = fun.call(thisp, this[i], i, this); 
     } 

     return res; 
    }; 
} 
6

Vous pouvez simplement faire:

array = ["erf,","erfeer,rf","erfer"]; 
array = array.map(function(x){ return x.replace(/,/g,"") }); 

maintenant Tableau Devient:

["erf", "erfeerrf", "erfer"]

+0

Vous n'avez pas besoin de (lire: ne devrait pas) tester l'expression régulière vous-même, qui se passe sous le capot de toute façon. –

+0

@StephanBijzitter ah! Oui. Merci. –

Questions connexes