along.js详解编程语言

平时写代码用到的方法,就给封装了一下。需要的拿走不谢。。。

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/tech/pnotes/12272.html

(0)
上一篇 2021年7月19日 14:28
下一篇 2021年7月19日 14:28

相关推荐

发表回复

登录后才能评论