优化代码function getNumLength (num){ var i = 1; while(true){ if(parseInt(num / 10) != 0){ i++ num = parseInt(num / 10) }else{ break } } console.log(i) } getNumLength (10000)
时间: 2024-01-10 15:03:07 浏览: 32
这段代码可以优化,可以使用字符串的 `length` 属性来计算数字的位数,而不需要使用循环和除法运算。以下是优化后的代码:
```
function getNumLength(num) {
console.log(num.toString().length);
}
getNumLength(10000);
```
这个代码将数字转换为字符串,然后使用 `length` 属性计算字符串的长度,从而得到数字的位数。
相关问题
优化代码function getNumLength (num){ var i = 1; while(true){ if(parseInt(num / 10) != 0){ i++ num = parseInt(num / 10) }else{ break } } console.log(i) } getNumLength (10)
您好,这段代码用来获取一个数字的位数,可以进行如下优化:
1. 使用 for 循环代替 while 循环,能够使代码更加简洁。
2. 不需要使用 parseInt 函数,因为整数相除结果会向下取整。
3. 可以使用 ES6 的模板字符串来输出结果。
改进后的代码如下:
```
function getNumLength(num) {
let i;
for (i = 1; num >= 10; i++) {
num /= 10;
}
console.log(`该数字的位数为:${i}`);
}
getNumLength(10);
```
这样代码更加简洁易懂,同时不会影响代码的功能。
帮我在这串代码中实现多次调用不同元素的同一id var day = document.getElementById('day'); var hour = document.getElementById('hour'); var minute = document.getElementById('minute'); var second = document.getElementById('second'); var inputtime = +new Date('2023-6-8 11:00:00');//自定义的毫秒数 timer();//先调用一次,避免第一次的卡顿 setInterval(timer,1000); function timer(){ var nowtime = +new Date();//返回当前的总毫秒数 var time = (nowtime) / 1000 ;// 1秒=1000毫秒 剩余需要倒计时的总秒数 var d = parseInt(time/60/60/24%30) var h = parseInt(time/60/60%24); var m = parseInt(time/60%60); var s = parseInt(time%60); // d = d < 10 ? '0' + d : d; day.innerHTML = '限时 ' + d + '天'; h = h < 10 ? '0' + h : h;//如果小于10前面补零,大于10直接填写 hour.innerHTML = h + ':'; m = m < 10 ? '0' + m : m;//如果小于10前面补零,大于10直接填写 minute.innerHTML = m + ':'; s = s < 10 ? '0' + s : s;//如果小于10前面补零,大于10直接填写 second.innerHTML = s ; }
可以将这些元素的id存放在一个数组中,然后使用循环来遍历数组,获取每个元素的id,并将其赋值给相应的变量。修改后的代码如下:
```
var ids = ['day', 'hour', 'minute', 'second'];
var elements = {};
for (var i = 0; i < ids.length; i++) {
elements[ids[i]] = document.getElementById(ids[i]);
}
var inputtime = +new Date('2023-6-8 11:00:00');//自定义的毫秒数
timer();//先调用一次,避免第一次的卡顿
setInterval(timer,1000);
function timer(){
var nowtime = +new Date();//返回当前的总毫秒数
var time = (nowtime - inputtime) / 1000 ;// 1秒=1000毫秒 剩余需要倒计时的总秒数
var d = parseInt(time/60/60/24%30)
var h = parseInt(time/60/60%24);
var m = parseInt(time/60%60);
var s = parseInt(time%60);
// d = d < 10 ? '0' + d : d;
elements['day'].innerHTML = '限时 ' + d + '天';
h = h < 10 ? '0' + h : h;//如果小于10前面补零,大于10直接填写
elements['hour'].innerHTML = h + ':';
m = m < 10 ? '0' + m : m;//如果小于10前面补零,大于10直接填写
elements['minute'].innerHTML = m + ':';
s = s < 10 ? '0' + s : s;//如果小于10前面补零,大于10直接填写
elements['second'].innerHTML = s ;
}
```
这样,你就可以通过调用 `elements['day']`、`elements['hour']`、`elements['minute']` 和 `elements['second']` 来分别获取不同的元素,而不需要分别调用 `document.getElementById()` 获取每个元素。
相关推荐
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)