day01_手写ES6高阶函数(forEach、map、filter、every、some)

高阶函数

  • 可以把函数作为参数传递给另一个函数

  • 可以把函数作为另一个函数的返回结果

forEach
function forEach(list, fn) {
  for (let i = 0; i < list.length; i++) {
      fn(list[i])
  }
}
let arr = [1, 2, 3, 4, 5, 6]
forEach(arr, item => { console.log(item) })
filter
function filter(list, fn) {
  const r = []
  for (let i = 0; i < list.length; i++) {
      if (fn(list[i])) r.push(list[i])
  }
  return r
}

let arr = [1, 2, 3, 4, 5, 6]
const result = filter(arr, item => { return item % 2 == 0 })
console.log(result)
map
function map(list, fn) {
  const r = []
  for (let i = 0; i < list.length; i++) {
      r.push(fn(list[i]))
  }
  return r
}
let arr = [1, 2, 3, 4, 5, 6]
const result = map(arr, item => { return item * 2 })
console.log(result)
some
function some(list, fn) {
  for (let i = 0; i < list.length; i++) {
      if (fn(list[i])) return true
  }
  return false
}
let arr = [1, 2, 3, 4, 5, 6]
const result = some(arr, item => { return item === 3 })
console.log(result)
every
function every(list, fn) {
  for (let i = 0; i < list.length; i++) {
      if (!fn(list[i])) return false
  }
  return true
}
let arr = [1, 1, 1, 1, 1, 2]
const result = every(arr, item => { return item === 1 })
console.log(result)



posted @ 2022-04-06 00:41  coffeemil  阅读(64)  评论(0编辑  收藏  举报