【发布时间】:2017-09-03 13:31:59
【问题描述】:
我有一个名为 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) ));
// });
// };
【问题讨论】:
-
我会提供整个上下文,你是对的@mplungjan
-
@RobG 我只是添加了一个 sn-p 来向您展示整个上下文。在它工作之前,我正在类主体之外测试我的重构。在它工作之后,我将删除代码并将其添加到类体中。
-
从 ES5 升级到 6 的预期改进是什么,而不是在旧浏览器中不工作
-
"我需要重构为 ES6" - 为什么?没有充分的理由将运行良好的 ES6 代码更改为不同的 ES6 代码。
标签: javascript ecmascript-6 static-methods arrow-functions