题目描述
如图:
思路&知识点
首先我们应该清楚接收的参数为字符串,字符串与字符串是不方便整个比较的,所以我们应该先想办法将两个字符串转化为数组,同时去掉中间多余的".",然后我们遍历这两个数组,先将字符转化为数字再比较大小,如果符合题意也就是新版本高于旧版本我们就立刻返回true,否则就继续遍历,直到全部遍历完成后我们返回false
过程中需要用到的方法
将两个字符串转化为数组,同时去掉多余的"."
使用str.split()就可以完美解决这个问题,该方法可以将字符串按照指定的方式分隔成为字符串,之前的文章里面有详细讲述过,这里就不再赘述。
将字符转化为数字
这里只讲主流的两种方法,第一种是使用praseInt(),第二种是使用Number(),这两种方法都可以将字符以及字符串转化为数字
//使用praseInt()方法
let a = praseInt("123")//123
//使用Number()方法
let a = Number("123")//123
代码&总结
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
</head>
<body>
<script type="text/javascript">
const _shouldUpdate = (oldVersion, newVersion) => {
// 补全代码
//将两个字符串按照"."分隔成为字符串数组
var old1 = oldVersion.split(".");
var new1 = newVersion.split(".");
//遍历两个数组,将每个值先转化为数字再进行比较
for(let i = 0;i<=2;i++){
//先将每个元素转化为数字便于比较
let a = parseInt(old1[i]);
let b = parseInt(new1[i]);
//只要需要更新就立刻返回true
if(b > a){
return true;
}
}
return false;
}
</script>
</body>
</html>
总结:有关字符串与数字的题目,感觉还挺贴近现实的,对于数组以及字符串的一些方法一定要熟练掌握。