手写filter,forEach, map, some, every, once函数

filter

const filter = (arr, fn) => {
    const result = [];
    for(let value of arr) {
        if(fn(value)) {
            result.push(value);
        }
    }
    return result;
}

forEach

const forEach = (arr, fn) => {
    for(let value of arr) {
        fn(value)
    }
}

map

const map = (arr, fn) => {
    const result = [];
    for(let value of arr) {
        result.push(fn(value));
    }
    return result;
} 

some

const some = (arr, fn) => {
    let bool = false;
    for(let value of arr) {
        bool = fn(alue);
        if(bool) {
            break;
        }
    }
    return bool;
}

every

const every = (arr, fn) => {
    let bool = true;
    for(let value of arr) {
        bool = fn(value);
        if(!bool) {
            break;
        }
    }
    return bool;
}

once

const once = (fn) => {
    let done = false;
    return function() {
        if (!done) {
            done = true;
            fn.apply(fn, arguments);
        }
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容