高阶箭头函数题
原题:
要求:使用箭头函数的语法来计算squaredIntegers
数组里正整数的平方(分数不是整数)。
const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34];
const squareList = (arr) => {
"use strict";
// 在这行以下修改代码
const squaredIntegers = arr;
// 在这行以上修改代码
return squaredIntegers;
};
// 测试你的代码
const squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);
条件:
1.不用function()
2. 不用循环
3. 使用map,filter或reduce
知识点:
- 箭头函数的书写
- map()
- filter()
- 乘方的写法
思路:
先用filter筛选出自然数,再用map给数组里的项加上平方
const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34];
const squareList = (arr) => {
"use strict";
// 在这行以下修改代码
const squaredIntegers = arr.filter((a) => a > 0 && a % 1 == 0).map(i => i**2);
// 在这行以上修改代码
return squaredIntegers;
};
// 测试你的代码
const squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);
.map()
和.filter()
方法
原数组.map(处理方法)
return
处理后的数组
原数组.filter(条件函数)
return
含符合条件项的数组
这题主要考箭头函数的书写,可以看出箭头函数编写十分简洁
乘方不一定要用Math.pow(a,b),这里没有办法把数组中的项一一写入a,直接用**2来表示平方。