自封裝數組的forEach(),fliter(),some(),every()方法 和字符串的repeat()方法

封裝數組的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));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章