如何用for循环计算字符串类型数字的各位数字之和?
解决字符串数字各位求和的问题
你的原代码存在几个关键问题:
- 循环条件写死为
i < 5,如果字符串长度变化就会失效,应该用x.length来适配任意长度的数字字符串 - 错误使用
x[x+1]:x是字符串,x+1会拼接成'123451',取这个的索引完全不符合需求,你要的是遍历每一位数字累加,而非相邻两位相加 - 没有设置累加变量,原代码每次计算的是相邻两位的和,不是所有位的总和
下面是正确的实现代码:
let x = '12345'; let sum = 0; // 初始化总和变量 for (let i = 0; i < x.length; i++) { sum += Number(x[i]); // 将当前位转成数字,累加到sum中 } console.log(sum); // 输出结果:15
如果需要查看每一步的累加过程,可以改成这样:
let x = '12345'; let sum = 0; for (let i = 0; i < x.length; i++) { const currentDigit = Number(x[i]); sum += currentDigit; console.log(`第${i+1}位数字:${currentDigit},当前累计和:${sum}`); } console.log('最终各位数字之和:', sum);
内容的提问来源于stack exchange,提问作者Arsen Mkrtumian
相关产品推荐
相关产品推荐

