就像我一样var arr = [1,2,3,4,5]
,我希望它变成这样arr["1","2","3","4","5"]
。我尝试使用:
var x = arr[0].toString(); //outputs "1"
但是当我这样做时,typeof x
它会输出“数字”。
我怎样才能将它转换为当我这样做时typeof
它会输出“字符串”?
就像我一样var arr = [1,2,3,4,5]
,我希望它变成这样arr["1","2","3","4","5"]
。我尝试使用:
var x = arr[0].toString(); //outputs "1"
但是当我这样做时,typeof x
它会输出“数字”。
我怎样才能将它转换为当我这样做时typeof
它会输出“字符串”?
最优雅的解决方案
arr = arr.map(String);
这适用于Boolean
并且Number
也适用。引用 MDN(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)
字符串文字(用双引号或单引号表示)和从非构造函数上下文中的 String 调用返回的字符串(即,不使用 new 关键字)是原始字符串。
至于 VisioNs 的回答,这只适用于支持的浏览器Array.prototype.map
一种方法是使用Array.prototype.map()
:
var arrOfStrings = arr.map(function(e) { return e + ""; });
您还可以使用:
arr.join().split(',');
这样做可能是一种更优雅的方式,但您可以循环数组并将每个值转换为字符串,方法是将其添加到空白字符串+=""
中。在这里检查javascript 类型转换
var arr = [1, 2, 3, 4];
for(var i=0;i<arr.length;i++) arr[i]+="";
alert(typeof arr[0]) //String
你也可以这样做: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++;
});