我有一个如下的数组:
var sphValues = [1, 2, 3, 4, 5];
然后我需要像下面这样转换上面的数组:
var sphValues = ['1', '2', '3', '4', '5'];
我怎样才能改变信仰? I used this for auto-complete.
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:
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);。
arr.map(String);
您可以使用 地图并将 绳子构造函数作为函数传递,它将把每个数字转换为一个字符串:
sphValues.map(String) //=> ['1','2','3','4','5']
这不会改变 sphValue,而是返回一个新的数组。
在这个上下文中使用 .map()是一个更好的选择,你也可以像下面的代码一样,这样可以增加代码的可读性,
.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"]
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; }