Javascript:我如何遍历一个多位数字并找到每个数字的连续数字^ n?

时间:2017-04-07 05:00:56

标签: javascript

例如,让我说我有数字345.我怎样才能在javascript中循环遍历数字中的每个数字并将其提升到连续的n次幂:即3 ^ 1 + 4 ^ 2 + 5 ^ 3?

4 个答案:

答案 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>