Chuyển đổi mảng số nguyên thành mảng chuỗi trong JavaScript


85

Tôi có một mảng như dưới đây:

var sphValues = [1, 2, 3, 4, 5];

thì tôi cần chuyển đổi mảng trên như dưới đây:

var sphValues = ['1', '2', '3', '4', '5'];

Tôi có thể chuyển đổi bằng cách nào? Tôi đã sử dụng cái này để tự động hoàn thành.


26
sphValues.map(String)
elclanrs

6
@elclanrs Bạn nên đăng đó như là một câu trả lời và không phải là một bình luận
Ông Alien

7
[1,2,3,4,5].toString().split(",")
Mr_Green

1
@SonalPM Bạn nên tham khảo markdown như bạn đang gặp khó khăn để viết bình luận với một liên kết, vì em đăng và xóa nhận xét của bạn 4 lần, bây giờ 5
Ông Alien

Câu trả lời:


196

Bạn có thể sử dụng bản đồ và chuyển hàm tạo chuỗi dưới dạng một hàm, hàm này sẽ biến mỗi số thành một chuỗi:

sphValues.map(String) //=> ['1','2','3','4','5']

Điều này sẽ không làm thay đổi sphValues. Nó sẽ trả về một mảng mới.


6
Tôi không hiểu tại sao điều này vẫn chưa được acepted là câu trả lời
MarsOne

3
Đối với các trình duyệt cũ không hỗ trợ Array.map, bạn có thể sử dụng underscore.js: _.map (sphValues, String)
Jonas Anseeuw

Thật không may, điều này cũng sẽ chuyển đổi boolean thành chuỗi.
Dev


9

Sử dụng Array.map:

var arr = [1,2,3,4,5];
var strArr = arr.map(function(e){return e.toString()});
console.log(strArr); //["1", "2", "3", "4", "5"] 

Chỉnh sửa:
Tốt hơn nên sử dụng arr.map(String);như @elclanrs được đề cập trong các nhận xét.


6
for(var i = 0; i < sphValues.length; i += 1){
    sphValues[i] = '' + sphValues[i];
}

6

Sử dụng .map()tại ngữ cảnh này là một động thái tốt hơn, cũng như bạn có thể làm như đoạn mã dưới đây, điều này sẽ bổ sung thêm khả năng đọc cho mã của bạn,

sphValues.map(convertAsString);

function convertAsString(val) {
  return val.toString();
}

3
 var value;
 for (var i = 0; i < data3.sph.length; i++) {
     value = data3.sph[i];
     //sphValues[i] = data3.sph[i];
     var obj = {
         label: value
     };
     sphValues.push(obj);
 }

Bạn có thể sử dụng phương pháp này để tự động hoàn thành. Tôi nghĩ rằng vấn đề của bạn sẽ được giải quyết, nhưng nó sẽ không chuyển đổi như bạn muốn, nó sẽ chuyển đổi như

["label": "val1", "label": "val2"]

2

bạn có thể chỉ cần thêm một '' để chuyển đổi nó thành một loại chuỗi.

var sphValues = [1,2,3,4,5];
for(var itr = 0; itr<sphValues.length;itr++){
  sphValues[itr] = '' + sphValues[itr];
}

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.