前端基础回顾

清除字符串前后的空格。(兼容所有浏览器)
function trim(str) {
    if (str && typeof str === "string") {
        return str.replace(/(^\s*)|(\s*)$/g,""); //去除前后空白符
    }
}

  

快速排序
(1)在数据集之中,找一个基准点
(2)建立两个数组,分别存储左边和右边的数组
(3)利用递归进行下次比较
function quickSort(arr){
            if(arr.length<=1){
                return arr;//如果数组只有一个数,就直接返回;
            }

            var num = Math.floor(arr.length/2);//找到中间数的索引值,如果是浮点数,则向下取整

            var numValue = arr.splice(num,1);//找到中间数的值
            var left = [];
            var right = [];

            for(var i=0;i<arr.length;i++){
                if(arr[i]<numValue){
                    left.push(arr[i]);//基准点的左边的数传到左边数组
                }
                else{
                   right.push(arr[i]);//基准点的右边的数传到右边数组
                }
            }

            return quickSort(left).concat([numValue],quickSort(right));//递归不断重复比较
        }

        alert(quickSort([32,45,37,16,2,87]));//弹出“2,16,32,37,45,87”
消除一个数组里面重复的元素
var arr1 =[1,2,2,2,3,3,3,4,5,6],
    arr2 = [];
for(var i = 0,len = arr1.length; i< len; i++){
    if(arr2.indexOf(arr1[i]) < 0){
        arr2.push(arr1[i]);
    }
}
document.write(arr2); // 1,2,3,4,5,6

  

统计字符串中字母个数或统计最多字母数
var str = "aaaabbbccccddfgh";
var obj  = {};
for(var i=0;i<str.length;i++){
    var v = str.charAt(i);
    if(obj[v] && obj[v].value == v){
        obj[v].count = ++ obj[v].count;
    }else{
        obj[v] = {};
        obj[v].count = 1;
        obj[v].value = v;
    }
}
for(key in obj){
    document.write(obj[key].value +'='+obj[key].count+' '); // a=4  b=3  c=4  d=2  f=1  g=1  h=1 
}   

  

可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制
function clone(obj){
            var o;
            switch(typeof obj){
                case "undefined":
                    break;
                case "string":
                    o = obj + "";
                    break;
                case "number":
                    o = obj - 0;
                    break;
                case "boolean":
                    o = obj;
                    break;
                case "object": 
                    if(obj === null){
                        o = null;
                    }else{
                       if(Object.prototype.toString.call(obj).slice(8,-1) === "Array"){
                           o = [];
                           for(let i=0; i<=obj.length; i++){
                               o.push(clone(obj[i]));
                           }
                       }else{
                           o = {};
                           for(let k in obj){
                               o[k] = clone(obj[k]);
                           }
                       }
                    }
                    break;
                default:
                    o = obj;
                    break;
                
            }
            return o;
        }

  

作者:汪汪
链接:https://www.zhihu.com/question/41466747/answer/132562725
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

(16)封装cookie的添加,删除,查询方法cookie是存储在浏览器端的,可以用于存储sessionID,也可以用于自动登陆,记住密码等,但是在浏览器端并没有官方的操作cookie的方法,下面我们来封装一下:CookieUtil={
    addCookie:function(key,value,options){
        var str=key+"="+escape(value);
        if(options.expires){
           var curr=new Date();   //options.expires的单位是小时
           curr.setTime(curr.getTime()+options.expires*3600*1000);
           options.expires=curr.toGMTString();
        }
        for(var k in options){   //有可能指定了cookie的path,cookie的domain
           str+=";"+k+"="+options[k];
        }
        document.cookie=str;
    },
    queryCookie:function(key){
      var cookies=document.cookie;
     //获得浏览器端存储的cookie,格式是key=value;key=value;key=value
      cookies+=";";
      var start=cookies.indexOf(key);
      if(start<=-1){ return null; }  //说明不存在该cookie
      var end=cookies.indexOf(";",start);
      var value=cookies.slice(start+key.length+1,end);
      return unescape(value);
    },
    deleteCookie:function(key){
      var value=CookieUtil.queryCookie(key);
      if(value===null){return false;}
      CookieUtil.addCookie(key,value,{expires:0});//把过期时间设置为0,浏览器会马上自动帮我们删除cookie
    }
}

  

去除双引号
“dsfdsfsd”
str..replace("\"","").replace("\"","");

获取backgroundImage

element.style.backgroundImage.split("(")[1].split(")")[0];

  

posted @ 2018-02-25 13:55  高中国流  阅读(170)  评论(0编辑  收藏  举报