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

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

将数据库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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值