2014-10-29 16 views
31

Tôi có một mảng như dưới đây,chuyển đổi số nguyên mảng vào mảng chuỗi trong javascript

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

sau đó tôi cần phải chuyển đổi trên mảng như như dưới đây một

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

Làm thế nào tôi có thể chuyển đổi? Tôi đã sử dụng tính năng này để tự động hoàn tất ..

+18

'sphValues.map (String) ' – elclanrs

+6

@elclanrs Bạn nên đăng câu trả lời đó và không phải là nhận xét –

+1

'[1,2,3,4,5] .toString(). Split (", ")' –

Trả lời

80

Bạn có thể sử dụng map và vượt qua các nhà xây dựng String như một chức năng, mà sẽ lần lượt từng số thành một chuỗi:

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

này sẽ không đột biến sphValues. Nó sẽ trả về một mảng mới.

+3

Tôi không hiểu tại sao điều này đã không được coi là câu trả lời – MarsOne

+2

Đố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) – janseeuw

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

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

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

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"] 

Edit:
Tốt hơn để sử dụng arr.map(String); như @elclanrs đề cập trong các ý kiến.

4

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

sphValues.map(convertAsString); 

function convertAsString(val) { 
    return val.toString(); 
} 
2
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 cho tự động hoàn thành. Tôi nghĩ 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"] 
1

chỉ bằng cách sử dụng phương pháp mảng

var sphValues = [1,2,3,4,5]; // [1,2,3,4,5] 
sphValues.join().split(',') // ["1", "2", "3", "4", "5"] 
Các vấn đề liên quan