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
risposta
Sì.
for(var i=0; i < arr.length; i++) {
arr[i] = arr[i].replace(/,/g, '');
}
+1 per essere più vicina di me ma è necessario fare qualcosa con il risultato, la sostituzione non muta la stringa. – AnthonyWJones
Mi spiace kekoav, Shoud non è: arr [i] = arr [i] .replace (/,/g, ''); ?? – tekBlues
@tekBlues - sì, codice aggiornato – Kekoa
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.
Data la stringa necessaria in s variabili: -
var result = s.replace(/,/g, '');
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;
};
}
Si può semplicemente fare:
array = ["erf,","erfeer,rf","erfer"];
array = array.map(function(x){ return x.replace(/,/g,"") });
Ora Array diventa:
["erf", "erfeerrf", "erfer"]
Non è necessario (leggi: non dovrebbe) testare l'espressione regolare da soli, che avviene comunque sotto il cofano. –
@StephanBijzitter ah! Sì. Grazie. –
Non puoi filtrare le stringhe prima che vengano inserite nell'array? Altrimenti è solo un semplice ciclo. –
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. –
@MannyCalavera, vedere la mia risposta –