有人可以将此箭头函数转换为普通函数吗?
Can someone convert this arrow function into Normal function?
我无法将此箭头函数转换为普通函数。我已经在 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];
我将你的代码插入 Babel 并得到了这个:
"use strict";
var realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];
var squareList = function squareList(arr) {
"use strict";
var squaredIntegers = arr.filter(function (num) {
return Number.isInteger(num) && num > 0;
});
return squaredIntegers;
};
var squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);
(一般情况下,当你需要将ES6+语法转为ES5时,可以使用Babel自动完成。)
箭头函数中 =>
之后的任何表达式都成为函数的隐式 return,但您需要在普通函数中使用 return
关键字显式 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);
你那里有一些问题。
函数语法是
function name(param_list)
function name(p1,pn)
也许保留内联声明更好。
function natural(num)
{
return Number.isInteger(num) && num > 0;
}
function squarelist(arr)
{
"use strict";
const squaredIntegers = arr.filter(natural); //notice non lambda needs a name
return squaredIntegers;
}
var realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];
var squareList = function squareList(arr) {
"use strict";
var squaredIntegers = arr.filter(function (num) {
return Number.isInteger(num) && num > 0;
});
return squaredIntegers;
};
var squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);
我想这很成功。
我无法将此箭头函数转换为普通函数。我已经在 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];
我将你的代码插入 Babel 并得到了这个:
"use strict";
var realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];
var squareList = function squareList(arr) {
"use strict";
var squaredIntegers = arr.filter(function (num) {
return Number.isInteger(num) && num > 0;
});
return squaredIntegers;
};
var squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);
(一般情况下,当你需要将ES6+语法转为ES5时,可以使用Babel自动完成。)
箭头函数中 =>
之后的任何表达式都成为函数的隐式 return,但您需要在普通函数中使用 return
关键字显式 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);
你那里有一些问题。
函数语法是
function name(param_list)
function name(p1,pn)
也许保留内联声明更好。
function natural(num)
{
return Number.isInteger(num) && num > 0;
}
function squarelist(arr)
{
"use strict";
const squaredIntegers = arr.filter(natural); //notice non lambda needs a name
return squaredIntegers;
}
var realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];
var squareList = function squareList(arr) {
"use strict";
var squaredIntegers = arr.filter(function (num) {
return Number.isInteger(num) && num > 0;
});
return squaredIntegers;
};
var squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);
我想这很成功。