2014-10-29 65 views
31

我有類似下面的數組,轉換整數數組到字符串數組在javascript

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

那麼我就需要上面數組轉換就像下面一個

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

我如何轉換? 我用這個來自動完成..

+18

'sphValues.map(字符串)' – elclanrs 2014-10-29 06:45:36

+6

@elclanrs你應該發佈作爲回答,而不是評論 – 2014-10-29 06:47:13

+1

'[1,2,3,4,5] .toString()。split(「,」)' – 2014-10-29 06:48:40

回答

80

您可以使用map並通過String構造函數的函數,它將把每個數字轉換成字符串:

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

這不會發生變異sphValues。它會返回一個新的數組。

+3

我不明白爲什麼這還沒有作爲答案 – MarsOne 2014-10-29 07:21:16

+2

對於不支持Array.map的舊瀏覽器,可以使用underscore.js:_.map(sphValues,String) – janseeuw 2015-07-08 09:35:56

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

你可以附加一個''來將它轉換爲字符串類型。

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

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

編輯:
最好使用arr.map(String);在評論中提到@elclanrs。

4

使用.map()在這種背景下,是一個更好的舉動,以及你可以像下面的代碼,這將增加更多的可讀性到您的代碼,

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); 
} 

你可以使用這個方法自動完成。我覺得你的問題將得到解決,但它不會轉換像你想,它會像

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

轉換隻需使用數組方法

var sphValues = [1,2,3,4,5]; // [1,2,3,4,5] 
sphValues.join().split(',') // ["1", "2", "3", "4", "5"]