2009-06-04 76 views
14

Tôi có một mảng trong javascript. Mảng này có các chuỗi chứa dấu phẩy (","). Tôi muốn tất cả các dấu phẩy được loại bỏ khỏi mảng này. Điều này có thể được thực hiện?Thay thế chuỗi trong mảng javascript

+0

Bạn không thể lọc các chuỗi trước khi chúng được đẩy vào mảng? Nếu không chỉ là một vòng lặp đơn giản. –

+0

Tôi đã cố gắng nhưng các chuỗi đang đến từ nơi khác, tự động. Nhưng dù sao cũng không quan trọng, tôi đã tìm ra những gì tôi đã làm sai. Tôi đã để lại dấu phẩy sau mỗi kết quả db. Tôi đã bị thuyết phục rằng việc đẩy mảng mà tôi đang làm là thêm dấu phẩy sau mỗi lần đẩy. Tôi là một starter trong JS. Dù sao cũng cảm ơn bạn. –

+0

@MannyCalavera, hãy xem câu trả lời của tôi –

Trả lời

38

Yes.

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

+1 để nhận được gần hơn tôi nhưng bạn cần phải làm điều gì đó với kết quả, thay thế không làm thay đổi chuỗi. – AnthonyWJones

+1

Xin lỗi kekoav, Không phải là: arr [i] = arr [i] .replace (/,/g, ''); ?? – tekBlues

+0

@tekBlues - vâng, cập nhật mã – Kekoa

0

Chắc chắn - chỉ cần lặp qua mảng và thực hiện xóa tiêu chuẩn trên mỗi lần lặp.

Hoặc nếu bản chất mảng của bạn cho phép, trước tiên bạn có thể chuyển đổi mảng thành chuỗi, lấy dấu phẩy, sau đó chuyển đổi lại thành mảng.

-1

Với chuỗi yêu cầu trong s biến: -

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

Cách tốt nhất hiện nay là sử dụng các chức năng map() theo cách này:

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

này là tiêu chuẩn ECMA-262. Nếu bạn nee nó cho phiên bản trước đó bạn có thể thêm đoạn mã này trong dự án của bạn:

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

Bạn chỉ có thể làm:

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

Bây giờ Mảng trở thành:

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

+0

Bạn không cần phải đọc (đọc: không nên) kiểm tra chính regex, điều đó xảy ra dưới mui xe. –

+0

@StephanBijzitter ah! Vâng. Cảm ơn. –

Các vấn đề liên quan