如何将javascript中的数字数组转换为字符串?

时间:2013-05-31 09:26:15

标签: javascript arrays string

就像我var arr = [1,2,3,4,5]一样,我想让它成为arr["1","2","3","4","5"]。我尝试使用:

var x = arr[0].toString(); //outputs "1"

但当我typeof x时,它会输出“数字”。

我如何转换它,当我typeof时它会输出“string”?

5 个答案:

答案 0 :(得分:4)

最优雅的解决方案

arr = arr.map(String);

这适用于BooleanNumber。引用MDN(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String

  

字符串文字(用双引号或单引号表示)和字符串调用在非构造函数上下文中返回(即不使用new关键字)是原始字符串。

对于VisioNs的回答,这仅适用于支持Array.prototype.map

的浏览器

答案 1 :(得分:3)

一种方法是使用Array.prototype.map()

var arrOfStrings = arr.map(function(e) { return e + ""; });

检查browser compatibility and use shim if needed

答案 2 :(得分:1)

这可能是一种更优雅的方法,但您可以循环数组并将每个值转换为字符串,方法是将其添加到空字符串+=""。检查here是否有javascript类型转化

var arr = [1, 2, 3, 4];
for(var i=0;i<arr.length;i++) arr[i]+="";
alert(typeof arr[0]) //String

答案 3 :(得分:1)

您也可以使用:

arr.join().split(',');

答案 4 :(得分:0)

您也可以这样做: LIVE DEMO (如果您想使用.toString()

var arr = [1, 2, 3, 4];

var i = 0;
arr.forEach(function(val) {
    arr[i] = val.toString();
    console.log(typeof(arr[i]));
    i++;
});