例如,让我说我有数字345.我怎样才能在javascript中循环遍历数字中的每个数字并将其提升到连续的n次幂:即3 ^ 1 + 4 ^ 2 + 5 ^ 3?
答案 0 :(得分:3)
使用String.prototype.split()
和Array.prototype.reduce()
计算总和:
let x = String(345).split('').reduce((a, v, i) => a + Math.pow(v, i + 1), 0);
console.log(x); // 144
使用Array.prototype.map()
如果您想要将连续的权力作为数组获得,而不是计算总和:
let a = String(345).split('').map((v, i) => Math.pow(v, i + 1));
console.log(a); // [3, 16, 125]
答案 1 :(得分:1)
这会将数字转换为字符串,然后将其分成数字,然后将每个数字提升到其索引加1的幂,然后通过加法减少得到答案:
('' + 345).split('').map(function(v, i) {
return Math.pow(parseInt(v), i+1)
}).reduce(function(a, v) {
return a + v
}, 0)
结果为144
答案 2 :(得分:0)
使用for()循环的解决方案
"use strict";
let number = 345;
let str = number.toString();
let answer = 0;
for (let i in str) answer += Math.pow(str[i], Number(i)+1);
console.log(answer);

答案 3 :(得分:0)
试试这个。
<!DOCTYPE html>
<html>
<head>
<script>
var number = 345;
var strNum = number.toString();
var sum = 0;
for(var i = 0; i < strNum.length; i++ ){
sum += Math.pow(parseFloat(strNum[i]), i+1);
}
console.log(sum);
</script>
</head>
</html>