2009-06-04 27 views
14

Javascript'te bir dizilim var. Bu dizi, virgül (",") içeren dizeleri içerir. Tüm virgüllerin bu diziden kaldırılmasını istiyorum. Bu yapılabilir mi?Dize javascript dizisinde değiştirin

+0

Dizeleri dizide itilmeden önce filtreleyemez misiniz? Aksi takdirde sadece döngü için basittir. –

+0

Denedim ama dizeler dinamik olarak başka bir yerden geliyor. Ama yine de önemli değil, yanlış yaptığım şeyi anladım. Her db sonucundan sonra virgül bırakıyordum. Yaptığım dizi itmenin her vuruştan sonra bir virgül eklediğine ikna oldum. JS'de bir başlangıç ​​yapıyorum. Yine de teşekkürler. –

+0

@MannyCalavera, benden daha yakın olmak için cevabımda –

cevap

38

Evet.

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

+1 cevabına bakın ancak sonuçta bir şey yapmanız gerekiyor, yerine dizeyi dönüştürmeyin. – AnthonyWJones

+1

Kusura bakma kekoav, arr [i] = arr [i] .replace (/,/g, ''); ?? – tekBlues

+0

@tekBlues - yes, updated code – Kekoa

0

Elbette - sadece dizi boyunca yineleyin ve her yinelemede standart bir kaldırma işlemi yapın.

Veya dizininizin niteliği izin veriyorsa, diziyi önce bir dizeye dönüştürebilir, virgülleri çıkarabilir ve sonra bir diziye dönüştürebilirsiniz.

-1

değişken s gerekli dize Verilen: -

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

günümüzde en iyi yolu bu şekilde map() işlevini kullanmaktır:

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

bu ECMA-262 standarttır. önceki sürümü için bunu nee Eğer projenizde Bu kod parçasını ekleyebilirsiniz:

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

Sadece yapabilirsiniz:

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

Şimdi Dizisi Oldu:

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

+0

Regex'i kendiniz test etmenize (okumamalısınız) gerek yok. –

+0

@StephanBijzitter ah! Evet. Teşekkürler. –

İlgili konular