平时写代码用到的方法,就给封装了一下。需要的拿走不谢。。。
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; }
渡人如渡己,渡已,亦是渡当我们被误解时,会花很多时间去辩白。 但没有用,没人愿意听,大家习惯按自己的所闻、理解做出判别,每个人其实都很固执。与其努力且痛苦的试图扭转别人的评判,不如默默承受,给大家多一点时间和空间去了解。而我们省下辩解的功夫,去实现自身更久远的人生价值。其实,渡人如渡己,渡已,亦是渡人。
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/12272.html