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

我有一个如下的数组:

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

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

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

我怎样才能改变信仰? I used this for auto-complete.

100970 次浏览
for(var i = 0; i < sphValues.length; i += 1){
sphValues[i] = '' + sphValues[i];
}

你只需要附加一个“将它转换成字符串类型。

var sphValues = [1,2,3,4,5];
for(var itr = 0; itr<sphValues.length;itr++){
sphValues[itr] = '' + sphValues[itr];
}

使用 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);

您可以使用 地图并将 绳子构造函数作为函数传递,它将把每个数字转换为一个字符串:

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

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

在这个上下文中使用 .map()是一个更好的选择,你也可以像下面的代码一样,这样可以增加代码的可读性,

sphValues.map(convertAsString);


function convertAsString(val) {
return val.toString();
}
 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"]

只需要使用数组方法

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

ES6 solution

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']

蠢货

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

使用 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’]

只要使用 array.map 方法,就可以将数字数组转换为字符串数组

var sphValues = [1, 2, 3, 4, 5];
const numberToStringArray = sphValues.map((number) => {
return number.toString();
});
console.log(numberToStringArray); //['1', '2', '3', '4', '5']

创建一个接受整数和字符串数组的函数。将整数转换为字符串。

function parseArray(arr) {
const str = arr.toString();
const backToArr = str.split(',');
return backToArr;
}