3. 高阶函数-常用的高阶函数
leezozz 12/17/2022 js
# 常用的高阶函数:
forEach、map、filter、every、some、find/findIndex、reduce、sort
# 实现map:
const map = (arr, fn) => {
const result = []
// for(let i in arr) {
// console.log('i', i)
// result.push(fn(arr[i]))
// }
for(let value of arr) {
console.log('value', value)
result.push(fn(value))
}
console.log('result', result)
return result
}
const array = [1, 9, 3, 7, 5]
// 测试map
const newArr = map(array, function(item) {
return item > 3
})
console.log('map结果', array, newArr)
// 测试map
const newArr1 = map(array, val => val * val)
console.log('map结果 ---', array, newArr1)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 实现every:
const every = (arr, fn) => {
let result = true
for(var value of arr) {
result = fn(value)
if(!result) {
break
}
}
return result
}
const newArr2 = every(array, item => item > 2)
console.log('every结果 ---', array, newArr2)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 实现some:
const some = (arr, fn) => {
let result = false
for(var value of arr) {
result = fn(value)
if(result) {
break
}
}
return result
}
const newArr3 = some(array, item => item % 2 === 0)
console.log('some结果 ---', array, newArr3)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12