Javascript:为什么我的数字没有被提升到第n次方并被推到我的数组中?

Javascript:为什么我的数字没有被提升到第n次方并被推到我的数组中?,javascript,Javascript,我试图编写一个函数,它接受一个数字,并将其数字范围求和到n次方,但我的函数似乎不是数组中每个数字的“n-thing” 这是我的密码: function sumDigPow(a, b) { var premArray = []; var squaredArray = []; for(var i = a; i <= b; i++){ premArray.push(i); } for(var j = 0; j < premArray.length; j++){

我试图编写一个函数,它接受一个数字,并将其数字范围求和到n次方,但我的函数似乎不是数组中每个数字的“n-thing”

这是我的密码:

function sumDigPow(a, b) {
  var premArray = [];
  var squaredArray = [];
  for(var i = a; i <= b; i++){
    premArray.push(i);

  }
  for(var j = 0; j < premArray.length; j++){
      var squared = ('' + premArray[j]).split('').map(function(v, i){
        return Math.pow(parseInt(v), i + 1);
      }).reduce(function(a , v){
          return a + v;
      }, 0);

       squaredArray.push(squared);
    }
}

sumDigPow(5,22);
函数sumDigPow(a,b){
var premArray=[];
var squaredArray=[];

对于(var i=a;i,这将返回取为连续幂的n位数之和

function sumDigPow(a, b) {
  var squared = String(a).split('').map(function(v){
    return Math.pow(parseInt(v), b++);
  }).reduce(function(a , v){
      return a + v;
  });

  return squared;
}
sumDigPow(89,1)=>89

sumDigPow(695,2)=>1390


sumDigPow(46288,3)=>2360688

你几乎把整个事情复杂化了

function digPow(n, p){
  var total = 0;
  var digits = (""+n).split("");

  for (var i = 0; i< digits.length; i++) {
    total += Math.pow(digits[i], p+i);
  }

  if(total/n % 1 === 0){
    return total/n;
  }

  return -1;
}
函数digPow(n,p){ var合计=0; 变量位数=(“”+n).split(“”); 对于(变量i=0;i
这里我们将第一个数字拆分为数组。请注意,如果字符串是数字的字符串,则字符串乘以数字可以生成数字,例如:“6”

所以我们只需将其拆分,迭代并计算总结果,然后检查用起始数(n)除以的结果是否为int,我们就有了简单的解决方案。 希望能有帮助