2009-06-04 158 views
14

我在javascript中有一個數組。此數組包含逗號(「,」)的字符串。我想從這個數組中刪除所有的逗號。這可以做到嗎?在javascript數組中替換字符串

+0

難道你不能過濾字符串之前被推入陣列?否則只是一個簡單的for循環。 – 2009-06-04 21:52:28

+0

我試過了,但是這些字符串是動態地從其他地方來的。但無論如何,我都知道我做錯了什麼。每次數據庫結果後我都留下一個逗號。我深信,我所做的陣列推動是在每次推動之後添加逗號。我是JS的首發。不管怎麼說,還是要謝謝你。 – 2009-06-04 22:05:38

+0

@MannyCalavera,看到我的回答 – 2014-04-02 05:29:55

回答

38

是。

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

當然 - 只需遍歷數組並在每次迭代中執行標準刪除。

或者如果數組的性質允許,可以先將數組轉換爲字符串,取出逗號,然後再轉換回數組。

-1

鑑於變量s所需的字符串: -

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

時下最好的辦法是使用map()函數以這種方式:

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

這是ECMA-262標準。 如果你的東東它的早期版本,你可以在你的項目中添加這段代碼:

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

你可以簡單地做:

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

現在排列成爲

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