在JavaScript中将整数数组转换为字符串数组


85

我有一个像下面这样的数组:

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

那么我需要像下面这样转换上面的数组:

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

如何转换?我用它来自动完成。


26
sphValues.map(String)
Elclanrs 2014年

6
@elclanrs您应该将其发布为答案,而不是评论
Alien先生

7
[1,2,3,4,5].toString().split(",")
Mr_Green 2014年

1
@SonalPM您应该参考markdown,因为您很难发布带有链接的评论,因为您已发布和删除评论4次,现在是5
Alien先生2014年

Answers:


196

您可以使用map并将String构造函数作为函数传递,该函数会将每个数字转换为字符串:

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

这不会改变sphValues。它将返回一个新数组。


6
我不明白为什么这个答案不能被接受
MarsOne 2014年

3
对于不支持Array.map的旧版浏览器,可以使用underscore.js:_.map(sphValues,String)
Jonas Anseeuw 2015年

不幸的是,这也会将布尔值转换为字符串。
开发

10

只是通过使用数组方法

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


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

6

.map()在此上下文中使用此方法会更好,并且您可以像下面的代码一样这样做,这将增加代码的可读性,

sphValues.map(convertAsString);

function convertAsString(val) {
  return val.toString();
}

3
 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

ES6解决方案

const nums = [1, 2, 3, 4, 5];
const strs = Array.from(nums.join(``));
console.log(strs);

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.