前端基础回顾
清除字符串前后的空格。(兼容所有浏览器) 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];