自封装数组的forEach(),fliter(),some(),every()方法 和字符串的repeat()方法

自古美人都是妖i 提交于 2020-01-11 17:43:35

封装数组的forEach() 实现数组的遍历

//封装数组的forEach()   实现数组的遍历
    function forEach(array,fn){
        for(let i=0;i<arr.length;i++){
            fn(array[i],i,array);
        }
    }
    let arr =[1,3,5,6,7,8];
    //调用函数打印出每一个元素
    forEach(arr,function(item,index,arr){
        document.write(`arr数组的第${index}个元素是${item}<br>`);
    })

封装数组的fliter()

 //删选出符合条件的元素,返回符合条件元素的新数组
    function fliter(array,fn){
        let newarr=[];
        for(let i=0;i<array.length;i++){
            //删选出符合条件的元素,符合条件的传进新数组
            if(fn(array[i],i,array)){
                newarr[newarr.length]=array[i];
            }
        }
        return newarr;
    }
    let arr =[1,3,5,6,7,8];
    let newarr=fliter(arr,function(item,index,array){
        //删选出大于5的元素
        if(item>5) return item;
    })
    document.write(newarr);

封装数组的some()

//  判断数组中元素是否满足某个条件,如果有一个元素满足条件,返回真
function some(array,fn){
    //初始化返回值为假
    let result=false;
    //判断  一个元素满足条件,就把返回值设置成真
    for(let i=0;i<array.length;i++){
        if(fn(array[i],i,array)){
            result=true;
        }
    }
    return result;
}
let arr=[1,3,5,6,7,8,9,10,'a'];
let result=some(arr,function(item,index,arr){
    //判断是否有元素等于7
    return item===7;
});
document.write(result);

封装数组的every()

//  判断数组中元素是否满足某个条件,如果所有元素都满足条件,返回真
    function every(array,fn){
        //初始化返回值为真
        let result=true;
        //判断  一个元素不满足条件,就把返回值设置成假
        for(let i=0;i<array.length;i++){
            if(!fn(array[i],i,array)){
                result=false;
            }
        }
        return result;
    }
    let arr=[1,3,5,6,7,8,9,10];
    let result=every(arr,function(item,index,arr){
        //判断所有元素是否是数字类型
        return typeof(item)==='number';
    });
    document.write(result);

封装repeat的方法

//repeat实现的是将一个字符串复制n次   参数输入错误 次数是负数 次数是小数
function repeat(str,count){
    if(typeof(count)==='number'&&typeof(str)==='string'){
        if(count<0){
            return '输入数字不能为负数'; 
        }
        else{
            let newstr='';
            for(var c=0;c<Math.floor(count);c++){
                newstr=newstr+str;
            }
            return newstr;
        }
    }
    else{
        return '传入参数不正确';
    }
    
}
//调用repeat函数
document.write(repeat('lalalahhh',3));
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!