2009-06-04 17 views
14

Tengo una matriz en javascript. Esta matriz tiene cadenas que contienen comas (","). Quiero que se eliminen todas las comas de esta matriz. Se puede hacer esto?Reemplazar cadena en javascript array

+0

¿No puedes filtrar las cadenas antes de que sean empujadas en la matriz? De lo contrario, es solo un simple bucle. –

+0

Lo intenté, pero las cadenas vienen de otro lugar, dinámicamente. Pero de todos modos no importa, me di cuenta de lo que estaba haciendo mal. Estaba dejando una coma después de cada resultado de DB. Estaba convencido de que el empuje de la matriz que estaba haciendo era agregar una coma después de cada empuje. Soy un titular en JS. Gracias de cualquier manera. –

+0

@MannyCalavera, mira mi respuesta –

Respuesta

38

Sí.

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

+1 para acercarte más que yo, pero necesitas hacer algo con el resultado, replace no muta la cadena. – AnthonyWJones

+1

Lo sentimos kekoav, No es: arr [i] = arr [i] .replace (/,/g, ''); ?? – tekBlues

+0

@tekBlues - sí, código actualizado – Kekoa

0

Claro, simplemente itere a través de la matriz y realice una eliminación estándar en cada iteración.

O si la naturaleza de su matriz lo permite, primero podría convertir la matriz en una cadena, sacar las comas, luego convertir de nuevo a una matriz.

-1

Dada la cadena requerida en s variables: -

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

La mejor manera hoy en día es el uso de la función map() de esta manera:

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

esto es un estándar ECMA-262. Si usted nee que para la versión anterior se puede agregar este fragmento de código en su proyecto:

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

Simplemente puede hacer:

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

Ahora matriz se convierte en:

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

+0

No necesita (lea: no debería) probar la expresión regular usted mismo, eso sucede debajo de la campana de todos modos. –

+0

@StephanBijzitter ¡ah! Sí. Gracias. –