数组reuduce实现map,filter

2019-11-21  本文已影响0人  Chris__Liu
const map = (arr, fn, context) => {
    return arr.reduce((acc, cur, index, arr) => {
        return [...acc, fn.call(context, cur, index, arr)]
    }, [])
}

var test = (item) => {
    return item * 2
}
var arr = [1, 2, 3]
map(arr, test, this)

const filter = (arr, fn, context) => {
    return arr.reduce((acc, cur, index, arr) => {
        return fn.call(context, cur, index, arr) ? [...acc, cur] : [...acc]
    }, [])
}

var test = (item) => {
    return item > 2
}
var arr = [1, 2, 3]
filter(arr, test, this)
上一篇 下一篇

猜你喜欢

热点阅读