我有一个叫做superPower的函数,它接受一个数字数组,并返回一个数字。通过将每个元素乘以10到数组中其索引位置的幂,然后将每个元素加在一起来创建此数字。

这是我需要重构为ES6的ES5版本

 ArrayFunctions.superPower = function(array){
 return array.reduce(function(sum, number, index){
 return sum + (number * (Math.pow(10, index)));
 });
};


到目前为止,这是我尝试过的方法,但是没有用:

static superPower (array) {
  return array.reduce(((sum, number, index) => sum + number + index ) {
  return (sum + (number => number ** (10, index) ));
  });
}


查找下面的完整代码:



class ArrayFunctions {
  constructor () {
  }
  static printSpecial (array) {
    return array.join(" --- ");
  }
  static doubleArray (array) {
      return array.map(number => number * 2);
  }
  static superPower (array) {
  //   return array.reduce( ((sum, number, index) => sum + number + index); {
  //     return sum + (number * (Math.pow(10, index)));
  // });
  }
}

// Method to refactor

ArrayFunctions.superPower = function(array){
  return array.reduce(function(sum, number, index){
    return sum + (number * (Math.pow(10, index)));
  });
};

// Here I am testing how to refactor it
// ArrayFunctions.superPower = function(array){
// return array.reduce(((sum, number, index) => sum + number + index ) {
//   return (sum + (number => number ** (10, index) ));
// });
// };

最佳答案

就像是:

ArrayFunctions.superPower = function(array){
 return array.reduce((sum, number, index) => {
   return sum+number*Math.pow(10, index);
 });
}

关于javascript - 从ES5到ES6的superPower功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43290414/

10-10 23:10