就像我var arr = [1,2,3,4,5]
一样,我想让它成为arr["1","2","3","4","5"]
。我尝试使用:
var x = arr[0].toString(); //outputs "1"
但当我typeof x
时,它会输出“数字”。
我如何转换它,当我typeof
时它会输出“string”?
答案 0 :(得分:4)
最优雅的解决方案
arr = arr.map(String);
这适用于Boolean
和Number
。引用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 + ""; });
答案 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++;
});