2009-06-04 4 views
14

Ho un array in javascript. Questo array ha stringhe che contengono virgole (","). Voglio che tutte le virgole vengano rimosse da questo array. Può essere fatto?Sostituisci stringa in javascript array

+0

Non puoi filtrare le stringhe prima che vengano inserite nell'array? Altrimenti è solo un semplice ciclo. –

+0

Ho provato a ma le stringhe provengono da altro posto, in modo dinamico. Ma non importa comunque, ho capito cosa stavo facendo male. Stavo lasciando una virgola dopo ogni risultato db. Ero convinto che l'array che stavo facendo aggiungesse una virgola dopo ogni push. Sono un antipasto in JS. Grazie comunque. –

+0

@MannyCalavera, vedere la mia risposta –

risposta

38

Sì.

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

+1 per essere più vicina di me ma è necessario fare qualcosa con il risultato, la sostituzione non muta la stringa. – AnthonyWJones

+1

Mi spiace kekoav, Shoud non è: arr [i] = arr [i] .replace (/,/g, ''); ?? – tekBlues

+0

@tekBlues - sì, codice aggiornato – Kekoa

0

Sicuro: basta scorrere l'array e eseguire una rimozione standard per ogni iterazione.

Oppure, se la natura della matrice lo consente, è possibile prima convertire la matrice in una stringa, eliminare le virgole e quindi riconvertire in una matrice.

-1

Data la stringa necessaria in s variabili: -

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

Il modo migliore oggi è quello di utilizzare la funzione map() in questo modo:

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

questo è standard ECMA-262. Se nee per versione precedente è possibile aggiungere questo pezzo di codice nel progetto:

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

Si può semplicemente fare:

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

Ora Array diventa:

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

+0

Non è necessario (leggi: non dovrebbe) testare l'espressione regolare da soli, che avviene comunque sotto il cofano. –

+0

@StephanBijzitter ah! Sì. Grazie. –