因为不要重复,所以使用高阶函数
例如:
// 迭代做加法
function arrAdd1(arr) {
const newArr = []
for (let i = 0; i < arr.length; i++) {
newArr.push(arr[i] + 1)
}
return newArr
}
// 迭代做乘法
function arrMult3(arr) {
const newArr = []
for (let i = 0; i < arr.length; i++) {
newArr.push(arr[i] * 3)
}
return newArr
}
// 迭代做除法
function arrDivide2(arr) {
const newArr = []
for (let i = 0; i < arr.length; i++) {
newArr.push(arr[i] / 2)
}
return newArr
}
优化为:
// +1 函数
function add1(num) {
return num + 1
}
// *3函数
function mult3(num) {
return num * 3
}
// /2函数
function divide2(num) {
return num / 2
}
function arrCompute(arr, compute) {
const newArr = []
for (let i = 0; i < arr.length; i++) {
// 变化的算式以函数的形式传入
newArr.push(compute(arr[i]))
}
return newArr
}