我有一个名为superPower的函数,它接受一个数字数组,并返回一个数字。这个数字是通过将每个元素乘以10到数组中索引位置的幂来创建的,然后将每个元素相加在一起。
这是我需要重构为ES5的ES6版本
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) ));
// });
// };
发布于 2017-04-08 05:18:43
就像:
ArrayFunctions.superPower = function(array){
return array.reduce((sum, number, index) => {
return sum+number*Math.pow(10, index);
});
}发布于 2017-04-08 05:38:47
我想你要找的是:
ArrayFunctions = {};
ArrayFunctions.superPower = (array => array.reduce(
(sum, number, index) => sum + number * 10 ** index), 0)
);
console.log(ArrayFunctions.superPower([1,2,3]));
这在我当前的Safari中不会运行,因为它不支持指数运算符**,我需要使用:
ArrayFunctions = {};
ArrayFunctions.superPower = (array => array.reduce(
(sum, number, index) => sum + number * Math.pow(10, index), 0)
);
console.log(ArrayFunctions.superPower([1,2,3]));
在类声明中使用一次返回是必需的,因为不能使用箭头函数来定义静态方法:
class ArrayFunctions {
constructor(){}
static superPower (array) {
return array.reduce((sum, number, index) => sum + number * Math.pow(10, index),0);
}
}
console.log(ArrayFunctions.superPower([1,2,3]));
但是,如果要简单地使用类语法来创建对象的方法,那么很难从以下方面证明它是正确的:
var arrayFunctions = {
superPower : (array) => array.reduce((sum, number, index) => sum + number * Math.pow(10, index), 0)
};
console.log(arrayFunctions.superPower([1,2,3]));
发布于 2017-04-08 05:45:24
我将以下代码添加到我的类主体中,它运行得很好:
return array.reduce((sum, number, index) => {
return sum+number*Math.pow(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) => {
return sum+number*Math.pow(10, index);
});
}
}
module.exports = ArrayFunctions;谢谢你@PHPglue
https://stackoverflow.com/questions/43290414
复制相似问题