简单算法实现合集

143 阅读1分钟

此处总结算法

  • 1.字符串反转
    //字符串分割,利用数组reverse()反转,最后join()形成新串
    function reverseString(str){
        let result = str.split('').reverse().join('');
        return result;
    }
  • 2.大数相加 JS 在存放整数的时候是有一个安全范围的,一旦数字超过这个范围便会损失精度。这时候我们用‘+’运算符计算,也就不行了。可以转化为字符串进行加操作

zhuanlan.zhihu.com/p/72179476

let a = "9007199254740991";
let b = "1234567899999999999";

function add(a ,b){
   //取两个数字的最大长度
   let maxLength = Math.max(a.length, b.length);
   //用0去补齐长度
   a = a.padStart(maxLength , 0);//"0009007199254740991"
   b = b.padStart(maxLength , 0);//"1234567899999999999"
   //定义加法过程中需要用到的变量
   let t = 0;
   let f = 0;   //"进位"
   let sum = "";
   for(let i=maxLength-1 ; i>=0 ; i--){
      t = parseInt(a[i]) + parseInt(b[i]) + f;
      f = Math.floor(t/10);
      sum = t%10 + sum;
   }
   if(f == 1){
      sum = "1" + sum;
   }
   return sum;
}
  • 3.获取URL参数,并转换为一个对象返回
function getQueryParams(url){
    const result = {};
    const querystring = url;
    const reg = /[?&][^?&]+=[^?&]+/g;
    const found = querystring.match(reg);
    if (found) {
        found.forEach( item =>{
            let temp = item.substring(1).split('=');
            let key = temp[0];
            let value = temp[1];
            result[key] = value;
        })
    }
    return result;
}