把一个字符串数组转化成数字数组

今天遇到了一个小问题,项目中一个功能是按特定数字键,进入到酒店模式。
但是发现拿到的按键键值是字符串的,我们判断的时候需要拿数字判断,导致二者永远判断不等。
if (this.numVec[0].key === vec[0] &&
this.numVec[1].key === vec[1] &&
this.numVec[2].key === vec[2] &&
this.numVec[3].key === vec[3]) {
isEqual = true;
if (this.numVec[3].time - this.numVec[0].time <= timeOut) {
DBG.info(“Vec Equal::” + this.numVec[3].time - this.numVec[0].time + timeOut);
isEqual = true
} else {
DBG.info(“Vec Equal but time out::” + this.numVec[3].time - this.numVec[0].time + timeOut);
isEqual = false
}
}
在这里插入图片描述
在这里插入图片描述
控制台中的切图中可以看到前者是数字56,后者是字符型‘56’,导致二者无法相等。
看到这。。。。想到了两种处理办法,1、把其中一个转化成和另外一个类型一致;
2、不要用严格恒等===,换成==尝试一下。

显而易见的,方案2是最简单且可行的,尝试了下也是可以的。只是要注意,这种方式只在前端JS编码时可用,并且对于代码规范性不是很有利。
但是还是想尝试下方案1,这种小小的点往往是不知道怎么下手然后还很常见的,怎么实现不遍历数组而能改变数组中每一个元素的类型呢????不会怎么办?当然是查资料!
百度了一下,网上给出了一个比较好的方案,先尝试一下:a=[‘1’,‘2’,'3,‘4’]
a.map(Number); // a=[1,2,3,4]
不知道怎么,这个方法在我这个项目中用的时候没有生效。。。。。无语了,这个方案的有效性还待试验。。。。
还要中方法,就是需要遍历数组,将数组中的每个字符串用parseInt方法转为整型,这个方案是最直白的,但是也是最麻烦的,在数组中元素过多时不适用。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值