有人可以将此箭头函数转换为普通函数吗?

Rit*_*Das 1 javascript web ecmascript-6 arrow-functions

我无法将此箭头函数转换为普通函数。我已经在 chrome 的控制台面板中对此进行了测试。此代码取自 freecodeCamp.org Es6 课程中的内容

//This is what I have tried. The final output result is showing undefined


const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];
const squareList = function(arr) {
    "use strict";
    const squaredIntegers = function(num) {
        (function() {
            arr.filter(Number.isInteger(num) && num > 0);
        });       
        return squaredIntegers;
    } 
}

const squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);

//Here is the Arrow function I was trying to convert

const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];
const squareList = (arr) => {
    "use strict";
    const squaredIntegers = arr.filter(num => Number.isInteger(num) && num > 0);
    return squaredIntegers;
};
const squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);


//The code should output this
[4, 42, 6];
Run Code Online (Sandbox Code Playgroud)

Mah*_*Ali 5

in 箭头函数之后的任何表达式=>都会成为函数的隐式返回,但您需要使用return关键字在普通函数中显式返回。

const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];
const squareList = function(arr){
    "use strict";
    const squaredIntegers = arr.filter(function(num){
        return Number.isInteger(num) && num > 0
    });
    return squaredIntegers;
};
const squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);
Run Code Online (Sandbox Code Playgroud)