0
点赞
收藏
分享

微信扫一扫

JS实现字符串数组与数值数组的互换

落拓尘嚣 2022-01-25 阅读 61

今天在做帆软报表的时候,遇到了一个小问题。

将数据库ID数组与帆软前端填入的文本转换后的ID数组进行数组间差集计算时,出现错误,进控制台console了一下,发现数据库取出的数组是数值数组,而帆软单元格填入的文本转为数组后为字符串数组,故不能进行比较。

需将两个数组转化同一类型,才能进行计算。百度了一下,找到了下面几种方法。

数值数组转字符串数组

1、map()方式

var arr1 = [1, 2, 5];
arr1 = arr1.map(String);  //将arr1转换为字符串数组
console.log(arr1);//结果: ["1","2","5"]
var arr2 = ["1","2","3","4"];
let diff = arr1.filter(function (val) { return arr2.indexOf(val) === -1 });//取arr1有而arr2没有的数组集
console.log(diff);//结果: ["5"]

2、toString()方式

var arr1 = [1, 2, 5];
arr1 = arr1.toString(); //将arr1转换为字符串,结果为:"1,2,5"
arr1=arr1.split(",");//将arr1转换为数组,分隔符为",",结果为["1", "2", "5"]

字符串数组转数值数组

1、map()方式

var arr1 = ["1","2","5"];
arr1 = arr1.map(Number);  //将arr1转换为数值数组
console.log(arr1);//结果: [1,2,5]
var arr2 = [1,2,3,4];
let diff = arr1.filter(function (val) { return arr2.indexOf(val) === -1 });//取arr1有而arr2没有的数组集
console.log(diff);//结果: [5]

2、forEach()与parseInt()连用

var arr1 = ["1","2","5"];
arr1.forEach((item,index) =>{
	arr1[index] = parseInt(arr1[index])
})
console.log(arr1); //结果:[1,2,5]

3、遍历使用parseInt()

var arr1 = ["1","2","5"];
for(let i=0;i<arr1.length;i++){
    arr1[i] = parseInt(arr1[i])
}        
console.log(arr1);// 结果为:[1,2,5]
举报

相关推荐

0 条评论