平时写代码用到的方法,就给封装了一下。需要的拿走不谢。。。
1.数组去重 并判断一个元素出现的次数 ???handle(str){ ???????let arr=str.split(‘‘) ???????var newarr=[]; ???????var obj={}; ???????for(var i=0;i<arr.length;i++){ ???????????if(!obj[arr[i]]){ ???????????????newarr.push(arr[i]); ???????????????obj[arr[i]]=1; ???????????}else{ ???????????????obj[arr[i]]++; ???????} ???} ???????console.log(obj);//{a: 3, b: 2, c: 1, d: 2, e: 1, …} ???}2.获取最小与最大时间的方法 ???getAll(value1, value2) { ???????var arr = []; ???????var getDate = function(str) { ???????????var tempDate = new Date(); ???????????var list = str.split("-"); ???????????tempDate.setFullYear(list[0]); ???????????tempDate.setMonth(list[1] - 1); ???????????tempDate.setDate(list[2]); ???????????return tempDate; ???????} ???????var date1 = getDate(value1); ???????var date2 = getDate(value2); ???????if(date1 > date2) { ???????????var tempDate = date1; ???????????date1 = date2; ???????????date2 = tempDate; ???????} ???????date1.setDate(date1.getDate()); ???????var dateArr = []; ???????var i = 0; ???????while(!(date1.getFullYear() === date2.getFullYear() && ???????????????date1.getMonth() === date2.getMonth() && date1.getDate() === date2 ???????????????.getDate())) { ???????????var dayStr = date1.getDate().toString(); ???????????if(dayStr.length === 1) { ???????????????dayStr = "0" + dayStr; ???????????} ???????????dateArr[i] = date1.getFullYear() + "-" + (date1.getMonth() + 1) + "-" + ???????????????dayStr; ???????????date1.setDate(date1.getDate() + 1); ???????????i++; ???????} ???????arr = dateArr; ???????arr.push(value2) ???????return arr; ???}3.数组扁平化 ????flat(arr){ ???????var newArr =[]; ???????for(var i= 0; i < arr.length; i++){ ???????????if(arr[i] instanceof Array){ ???????????????newArr = newArr.concat(this.flat(arr[i])); ???????????}else{ ???????????????newArr.push(arr[i]); ???????????} ???????} ???????return newArr; ???} ???4.时间戳转化成时间格式 ???timeFormat(timestamp){ ???????var time = new Date(timestamp); ???????var year = time.getFullYear(); ???????var month = time.getMonth()+1; ???????var date = time.getDate(); ???????var day=time.getDay(); ???????return year+‘-‘+this.add0(month)+‘-‘+this.add0(date) ???} ???add0(m){return m<10?‘0‘+m:m } ???5.星期封装方法 返回星期几 ???GetWeek(num){ ???????let b=num%7; ???????switch(b){ ???????????case 1: ???????????????return ‘周一‘ ???????????case 2: ???????????????return ‘周二‘ ???????????case 3: ???????????????return ‘周三‘ ???????????case 4: ???????????????return ‘周四‘ ???????????case 5: ???????????????return ‘周五‘ ???????????case 6: ???????????????return ‘周六‘ ???????????case 0: ???????????????return ‘周日‘ ???????????default: ???????????????console.log(‘有误‘) ???????} ???} ???6.取最小值 ???Minarr(arr){ ???????return Math.min(...arr); ???} ???7.取最大值 ???Maxarr(arr){ ???????return Math.max(...arr); ???}8.如何用异步解决下面问题? ???function getNextEvent(){ ???????var event1=getNextKeyboarEvent(); ???????var event2=getNextTouchEvent(); ???????return event1 || event2 ???} ???function getNextEvent(callback){ ???????let timer=setInterval(function(){ ???????????let event=getNextKeyboarEvent() || getNextTouchEvent() ???????????if (event) { ???????????????clearInterval(timer) ???????????????callback(event) ???????????} ???????}) ???}9.冒泡排序:依次对相邻的两个数据进行比较,大的放在后面,小的放在前面 ???function Arrp(arr){ ???????????var temp=0; ???????????for(let i=0;i<arr.length;i++){ ???????????????for(let j=i+1;j<arr.length;j++){ ???????????????????if(arr[i]>arr[j]){ ???????????????????????temp=arr[i]; ???????????????????????arr[i]=arr[j]; ???????????????????????arr[j]=temp; ???????????????????} ???????????????} ???????????} ???????????console.log(arr) ???????}10.选择排序:将第一位的数据与后面的数据依次比较,得到最小值与第一位交换,第二位大的值再一次与后面的数据依次比较,进行排序。 ???function ArraySt(arr){ ???????????for(let i=0;i<arr.length-1;i++){ ???????????????var min=arr[i];//假设第一位是最小值 ???????????????var minIndex=i;//再拿到最小值时的索引 ???????????????for(let j=i+1;j<arr.length;j++){ ???????????????????if(min>arr[j]){//假设失败 最小值大于了后一位的值 ???????????????????????min=arr[j];//存储此时的最小值 ???????????????????????minIndex=j;//存储此时最小值的索引 ???????????????????} ???????????????} ???????????????arr[minIndex]=arr[i];//再把第一位的数据放在第二位最小值的位置 ???????????????arr[i]=min;//再把最小值放在第一位的位置 ???????????} ???????????console.log(arr) ???????}11.数组去重 ???function Setarr(arr){ ???????var set = new Set(arr); ???????return set; ??}12.实现数据双向绑定 ???<body> ??<div id="app"> ??????<input type="text" id="txt"> ??????<p id="show-txt"></p> ??</div> ??<script> ??????var obj = {} ??????Object.defineProperty(obj, ‘txt‘, { ??????????get: function () { ??????????????return obj ??????????}, ??????????set: function (newValue) { ??????????????document.getElementById(‘txt‘).value = newValue ??????????????document.getElementById(‘show-txt‘).innerHTML = newValue ??????????} ??????}) ??????document.addEventListener(‘keyup‘, function (e) { ??????????obj.txt = e.target.value ??????}) ??</script></body>13.将数字金额每三位用逗号分隔 ????// * 功能:金额按千位逗号分隔 ????// * 参数:s,需要格式化的金额数值. ?????// * 参数:type,判断格式化后的金额是否需要小数位. ?????// * 返回:返回格式化后的数值字符串. ????formatMoney(s, type) { ???????if (/[^0-9]/.test(s)) ???????????return "0.00"; ???????if (s === null || s === "null" || s === "") ???????????return "0.00"; ???????s = s.toString().replace(/^(\d*)$/, "$1."); ???????s = (s + "00").replace(/(\d*\.\d\d)\d*/, "$1"); ???????s = s.replace(".", ","); ???????var re = /(\d)(\d{3},)/; ???????while (re.test(s)) ???????????s = s.replace(re, "$1,$2"); ???????s = s.replace(/,(\d\d)$/, ".$1"); ???????if (type === 0) { ???????????var a = s.split("."); ???????????if (a[1] === "00") { ???????????????s = a[0]; ???????????} ???????} ???????return s; ???} ?14.获取任意两日期内所有的月份 ???getMonthBetween(start, end) { ???????var result = []; ???????var s = start.split("-"); ???????var e = end.split("-"); ???????var min = new Date(); ???????var max = new Date(); ???????min.setFullYear(s[0], s[1]); ???????max.setFullYear(e[0], e[1]); ???????var curr = min; ???????while(curr <= max) { ???????????var month = curr.getMonth()+1; ???????????result.push(curr.getFullYear() + "-" + (month < 10 ? ("0" + month) : month)); ???????????curr.setMonth(month); ???????} ???????return result; ???}15.获取日期前天,昨天,今天,明天,后天... ???GetDateStr(AddDayCount) { ????????var dd = new Date(); ????????dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期 ????????var y = dd.getFullYear(); ????????var m = dd.getMonth()+1;//获取当前月份的日期 ????????var d = dd.getDate(); ????????return y+"-"+m+"-"+d; ????} ???16.url地址传递数据截取 ???var url="http:item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e"; ???function StrUrl(url){ ???????let result={}; ???????let a=url.split("?")[1]; ???????let b=a.split("&"); ???????for(let i=0;i<b.length;i++){ ???????????result[b[i].split("=")[0]]=b[i].split("=")[1] ???????} ???????return result; ???}
渡人如渡己,渡已,亦是渡当我们被误解时,会花很多时间去辩白。 但没有用,没人愿意听,大家习惯按自己的所闻、理解做出判别,每个人其实都很固执。与其努力且痛苦的试图扭转别人的评判,不如默默承受,给大家多一点时间和空间去了解。而我们省下辩解的功夫,去实现自身更久远的人生价值。其实,渡人如渡己,渡已,亦是渡人。
along.js
原文地址:https://www.cnblogs.com/alongup/p/9255438.html