every和some

every函数

我们经常需要检查数组的内容是否为数字,自定义对象或其他类型.我们通常编写典型的循环方法来解决这些问题. 下面将这些抽象到every函数中, 它接受两个参数:一个数组和一个函数. 它使用传入的函数检查数组的所有元素是否为true.

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

some函数

本函数与上面的every相对应,

如果数组中的一个元素通过传入的函数返回true,some函数就将返回true.

_.some = (arr,fn)=>{
        let result = false;
        for(const value of arr){
                result = result || fn(value);
                if(result){
                        break;
                }
        }
        return result;
}

Last updated