模拟js中的api底层代码,

108 阅读1分钟
//  模拟push
    // var arr=[1,2]
    // function push(arr,addItem){
    //     arr[arr.length] = addItem
    //     return arr.length
    // }
    // var len = push(arr,3)
    // console.log(arr);


    // 模拟concat
    //    var a = [1,2]
    //    var b = [3,3,[1,23]]
    //    console.log(res,a);
    //    function arr_concat(){
    //        var parms = [...arguments]
    //        console.log(parms);
    //        var res = [];
    //        for(var i = 0;i<parms.length;i++){
    //            parms[i].forEach(function(item){
    //             res.push(item)
    //            })
    //        }           
    //        return res;
    //    }
    //   var res1 = arr_concat(a,b)

    // 模拟reverse
    // function reverse(str){
    //     var result=[]
    //     for(var i=arr.length-1;i>=0;i--){
    //         result.push(arr[i])
    //     }
    //     return result
    // }
    // var arr = [1,2,3,4,5,6,7,8]
    // var res = reverse(arr)
    // console.log(res);
    

    // var str = 'abc';
    // var res = str_reverse(str);

    // function str_reverse(str){
    //     if(typeof str !== 'string') throw new Error('arguments must be string')
    //     var result = "";
    //     for(var i=str.length-1;i>=0;i--){
    //         result+=str[i]
    //     }
    //     return result
    // }
    // console.log(res);

    //  模拟pop
    // function pop(arr){
    //     var result=[]
    //     for(var i=0;i<arr.length-1;i++){
    //         result[i] = arr[i]
    //     }
    //     return result
    // }
    // var arr = [1,2,3,4,5,6]
    // console.log(pop(arr));

    //  模拟tostring
    // function toString(arr){
    //     var res = ''
    //     for(var i=0;i<arr.length;i++){
    //         res+=arr[i]+','
    //     }
    //     res = res.slice(0,res.length-1)
    //     return res
    // }
    // var arr = [1,2,3]
    // console.log(toString(arr));

    //  join
    // function join(arr, separator) {
    //     var res = ''
    //     for (var i = 0; i < arr.length; i++) {
    //         res += arr[i] + separator
    //     }
    //     res = res.slice(0, res.length - 1)
    //     return res
    // }
    // var arr = [1, 2, 3]
    // console.log(join(arr, '+'));

    //  slice
    // function slice(arr,begin,end){
    //     var res = []
    //     for(var i=0;i<arr.length;i++){
    //         if(i>=begin && i<end){
    //             res.push(arr[i])
    //         }
    //         if(i>=begin && end===undefined){
    //             res.push(arr[i])
    //         }
    //     }
    //     return res
    // }
    // var arr = [1,2,3,4,5,6,7,8,9]
    // console.log(slice(arr,3,5));

    //   substr
    // var str = 'dsadaldada'
    // var res = str_substr(str, 2, 5)
    function str_substr(str, index, len) {
        if (typeof str !== 'string') throw new Error('param1 must be string')
        var res = '';
        if (index > str.length - 1) return res;
        if (typeof len === 'undefined' || str.length - index < len) {
            for (var i = 0; i < str.length - index; i++) {
                res = res + str[index + i]
            }
            return res
        }
        for (var i = 0; i < len; i++) {
            res += str[index + i]
        }
        return res;
    }
    // console.log(res);

    
    //  indexOf
    var str = '12345sdadafasffascgsggsgd6'
    var res = str_indexof(str,'gg')
    function str_indexof(str,check){
        var result = -1
        for(var i=0;i<str.length;i++){
           var substr = str_substr(str,i,check.length)
           if(substr === check){
               return i
           }
        }
        return result
    }
    console.log(res);