javascript - 当添加在for循环中时如何添加到变量
问题描述
这是来自codewars的问题。这是我的代码。
function narcissistic(value) {
var total = 0
var valLength = value.length
const digit = [...`${value}`];
for(var i = 0; i < value.length; i++){
total += Math.pow(value.length , digit)
}
if(total == value){ return true
} else {
return false
}
}
我遇到的问题是我不知道为什么当我这样做时total += value.length * digit[i]
它没有添加到total
. 有任何想法吗?
解决方案
这个函数可以返回你需要的值
function narcissistic(value) {
const stringValue = [...`${value}`];
const len = stringValue.length;
const sum = stringValue.reduce((prev, current) => {
return prev + Math.pow(parseInt(current, 10), len);
}, 0)
return `${value}` === sum.toString();
}
推荐阅读
- angular - TypeScript 编译中缺少 ts。请通过 'files' 或 'include' 属性确保它在您的 tsconfig 中
- javascript - 谷歌地图折线不显示和抛出错误
- google-cloud-platform - Stackdriver Logging API 身份验证问题通过 API Key 机制
- angular - 为什么我的“Angular Material Components”不起作用?
- c - 更改宏值时出现段错误
- wordpress - 单击主页时,用户已注销
- javascript - firebase 云功能模拟器出错
- javascript - Highcharts - 组合和叠加列
- swift - 如何持久化和加载 NSDatePicker 日期值
- python - 我如何启动 bash,然后我的脚本