Javascript 尝试创建一个for循环,该循环在total变量中对其运行的总和进行迭代相加

Javascript 尝试创建一个for循环,该循环在total变量中对其运行的总和进行迭代相加,javascript,scope,Javascript,Scope,我正在尝试用Javascript编写一个函数,根据数字是否为阿姆斯特朗数字,该函数将返回true或false。阿姆斯特朗数是取一个数的每一位数字乘以该数的长度,然后将它们相加等于原始数的数。例如:153是阿姆斯特朗数,因为:153=1^3+5^3+3^3=1+125+27=153 我确信我的函数还有其他问题,而且不是最漂亮的,但我一直坚持这个 我已经尝试在函数的多个区域添加parseInt(),以确保我只处理整数,而不是不处理任何字符串的字符串 const validate=(num)=>{

我正在尝试用Javascript编写一个函数,根据数字是否为阿姆斯特朗数字,该函数将返回
true
false
。阿姆斯特朗数是取一个数的每一位数字乘以该数的长度,然后将它们相加等于原始数的数。例如:153是阿姆斯特朗数,因为:
153=1^3+5^3+3^3=1+125+27=153

我确信我的函数还有其他问题,而且不是最漂亮的,但我一直坚持这个

我已经尝试在函数的多个区域添加
parseInt()
,以确保我只处理整数,而不是不处理任何字符串的字符串

const validate=(num)=>{
常量numlength=num.toString().length;
让阿姆斯特朗;
让一位数;
对于(i=0;iconsole.log(validate(153))
您需要设置armstrong=0的初始值

默认情况下,它是
未定义的
,因此当您使用
未定义的
执行数学运算时,它会导致
NaN

const validate=num=>{
设numString=num.toString()
常量numlength=numString.length;
设armstrong=0;
设单位数=0;
for(设i=0;iconsole.log(validate(153))
非常感谢。将我的初始值设置为0,让函数按预期工作。其他修改在简化查找数字长度方面也完全有意义。将进一步研究
.reduce()
方法,就像您建议的那样。仍在努力更好地使用阵列。