高阶函数
什么是高阶函数?
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)