几种常用的API的写法

在编程时,我们会用到很多方法,其实这些写法我们也可以自己写出来,封装在函数中,使用时直接调用,也很方便,当然我们写的当然没有官网写的方法好,但至少是符合自己的需求的,下面我们来看看几种常用方法的写法吧;
1.分解质因数:
number为需要分解的数字,返回的是分解的结果

function (number) {
    
    
         var arr = [];
         var numberCopy = number;
         while (number!=1) {
    
    
             for (var i = 2; i < =number; i++) {
    
    
                 if (number % i == 0) {
    
    
                     arr.push(i);
                     number = number / i;
                     break;
                 }
             }
         }
         return console.log(numberCopy + "=" + arr.join("*"));
     }

2.判断是否为素数

/**
 * 
 * @param {number} num  输入的某个数
 * @param   isPrime  判断是否为素数
 */

function isPrime(num){
    
    
    if(num<2){
    
    
      return false;
    }
    for(var j=2;j<num/2;j++){
    
    
        if(num%j==0){
    
     
           return false;
        }
    }
   return true;
}

3.随机字符串,常用于写验证码

 
    function(len){
    
    
        var temp='';
        for(var i=65;i<65+26;i++){
    
    
              temp+=String.fromCharCode(i);
        }
        for(var i=97;i<97+26;i++){
    
    
            temp+=String.fromCharCode(i);
        }
        for(var i=48;i<48+10;i++){
    
    
            temp+=String.fromCharCode(i);
        }
        var res='';
        for(var j=0;j<len;j++){
    
    
              var index=this.getrandom(0,temp.length-1);
              res+=temp[index];
        }
      return console.log(res);
    },
    getrandom:function(max,min){
    
    
        return Math.floor(Math.random()*(max+1-min)+min);
    }

4.找到某个字符串中出现最多的字符,打印字符和它出现的次数

    function(str){
    
    
        var recode={
    
    };
        var res={
    
    };
        for(var i=0;i<str.length;i++){
    
    
            if(recode[str[i]]){
    
    
                recode[str[i]]++;
            }else{
    
    
                recode[str[i]]=1;
            }
        }
         res.maxcount=0;
        for(var key in recode){
    
    
              if(recode[key]>res.maxcount){
    
    
                   res.member=key;
                   res.maxcount=recode[key];
              }
        }
          console.log(res);
    }

5.去掉数组中的重复项
方法一:

     function (arr) {
    
    
       
          for (var i = 0; i < arr.length - 1; i++) {
    
    
             for (var j = 0; j < arr.length - i - 1; j++) {
    
    
                 if (arr[j] == arr[j + 1]) {
    
    
                      delete arr[j + 1];
                  }
              }
          }
          return console.log(arr);
          }
 

方法二:

         function (arr) {
    
    
       
         var newarr=[];
         for(var i=0;i<arr.length-1;i++){
    
    
            if(newarr.indexOf(arr[i])==-1){
    
    
                    newarr.push(arr[i]);
             }
         } 
            return console.log(newarr);
         }

方法三:

   function (arr) {
    
    
       
         for(var i=0 , newarr=[] , hash={
    
    };i<arr.length;i++){
    
    
                if(hash[arr[i]]===undefined){
    
    
                    newarr.push(arr[i]);
                      hash[arr[i]]='123';
                }
        }
        return console.log(newarr);
        }

6.为数组排序
这里引用的items是一些具体的方法即需求,我们也可以自己添加一些其他的排序方法,例如升序,降序;

 function (arr, items) {
    
    
        if (!items) {
    
    
            items = function (a, b) {
    
    
                if (a > b) {
    
    
                    return1;
                } else if (a === b) {
    
    
                    return 0;
                } else {
    
    
                    return -1;
                }
            }
        }
        for (var i = 0; i < arr.length - 1; i++) {
    
    
            for (var j = 0; j < arr.length - i - 1; j++) {
    
    
                if (items(arr[j], arr[j + 1]) > 0) {
    
    
                    var temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        return console.log(arr);
    }
// 升序方法
function items1(a, b) {
    
    
    if (a > b) {
    
    
        return true;
    }
}
// 降序方法
function items2(a, b) {
    
    
    if (b > a)
        return true;
}

7.在数组前面添加数据

  Array.prototype.unshift = function (arr) {
    
    
            for (var y = this.length + arguments.length - 1; y > 0; y--) {
    
    
                 this[y] = this[y - arguments.length];
             }
             for (var i = 0; i < arguments.length; i++) {
    
    
                 this[i] = arguments[i];
            }
             return this.length;
         }
         arr.unshift1(6, 7, 3, 0);
         console.log(arr);

8.在数组后面添加

  Array.prototype.push1 = function(arr){
    
    
             // this当前调用push1的数组
             // arguments 传递进来的所有参数

             for(var i = 0; i < arguments.length; i++){
    
    
                 this[this.length] = arguments[i];
             }

             return this.length;
         }
         arr.push1(10);
         console.log(arr);

9.计算n的阶层,n可输入

      function (a) {
    
    
         var sum = 1;
         for (var i = 1; i <= a; i++) {
    
    
             sum *= i;
         }
         return console.log(sum);
     }

猜你喜欢

转载自blog.csdn.net/qq_44902858/article/details/110679045
今日推荐