如何优雅实现1-100计数:替换含3或能被3整除的数?
优化方案
直接用字符串判断覆盖所有含数字3的情况,同时修正变量声明问题,优化后的代码如下:
function checker(num) { for (let i = 1; i <= num; i++) { // 判断能被3整除,或者数字中包含3 if (i % 3 === 0 || i.toString().includes('3')) { console.log('boom'); } else { console.log(i); } } } checker(100);
优化点说明
- 替代手动枚举:把数字转为字符串后调用
includes('3'),可以一次性判断该数的任意数位是否包含3,不管是个位、十位还是更高位,彻底避免冗余的枚举代码。 - 规范变量声明:给循环变量
i加上let声明,避免产生全局变量,符合JS语法规范。 - 逻辑保持一致:保留了原代码中“能被3整除则输出boom”的判断逻辑,和“含3则输出boom”的条件用逻辑或连接,实现需求不变。
内容的提问来源于stack exchange,提问作者Alex Raskatov
相关产品推荐
相关产品推荐

