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

129

我有一个如下的数组:

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

然后我需要将上面的数组转换成下面这样:

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

我该怎样进行转换? 我用这个自动补全。


36
sphValues.map(String) - elclanrs
8
你应该将那个作为答案而不是评论发表。 - Mr. Alien
12
[1,2,3,4,5].toString().split(",") - Mr_Green
1
@SonalPM 你应该参考Markdown,因为你在发布带有链接的评论时遇到了困难,因为你已经发布并删除了4次评论,现在是第5次。 - Mr. Alien
11个回答

293
你可以使用 map 函数并将 String 构造函数作为参数传入,这将把每个数字转换为字符串。
sphValues.map(String) //=> ['1','2','3','4','5']

这不会改变sphValues的值,而是返回一个新的数组。


5
对于不支持 Array.map 的旧版浏览器,您可以使用 underscore.js: _.map(sphValues, String),该函数可以将数组中的元素转化为字符串。 - Jonas Anseeuw
不幸的是,这也会将布尔值转换为字符串。 - Dev

17

只用数组方法就可以实现

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

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

编辑:
请根据评论中@elclanrs的建议使用arr.map(String);更好。


为什么不只用toString()? - Mah Neh

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

5

ES6解决方案

const nums = [1, 2, 3, 4, 5, 10];
// bugfix: the `10` edge case
const strs = Array.from(nums, x => `${x}`);
console.log(strs);
// ['1', '2', '3', '4', '5', '10']

git diff

-  const strs = Array.from(nums.join(``));
+  const strs = Array.from(nums, x => `${x}`);

这是错误的。如果您有一个值,例如10,则输出为“1”,“0”。 - chitgoks
@chitgoks 你说得对,现在我已经修复了它。 - xgqfrms

3
您可以直接添加 '' 将其转换为字符串类型。
var sphValues = [1,2,3,4,5];
for(var itr = 0; itr<sphValues.length;itr++){
  sphValues[itr] = '' + sphValues[itr];
}

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

使用 map 的另一种解决方案:

let nums = [1,2,2,4,3,2,5,6]
let all_to_str = nums.map(num => {return num.toString()})
console.log(all_to_str)

输出:

[ '1', '2', '2', '4', '3', '2', '5', '6' ]


-1
创建一个函数,该函数接受一个整数和字符串的数组。将整数转换为字符串。
function parseArray(arr) {
     const str = arr.toString();
     const backToArr = str.split(',');
     return backToArr;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接