• js常用代码


    获取URL ?后的查询参数

    function query(name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
        var r = decodeURI(window.location.search).substr(1).match(reg);
        if(r != null) return unescape(r[2]);
    };

    数组去重

    function unique(arr){
      var res =[];
      var json = {};
      for(var i=0;i<arr.length;i++){
        if(!json[arr[i]]){
          res.push(arr[i]);
          json[arr[i]] = 1;
        }
      }
      return res;
    }

    数字输入框

    function clearNoNum(obj) {
        obj.value = obj.value.replace(/^(-)*(d+).(dd).*$/, '$1$2.$3'); //只能输入两个小数  
        if(obj.value.indexOf(".") < 0 && obj.value != "") { //以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额 
            obj.value = parseFloat(obj.value);
        }
        if(obj.value == 'NaN') {
            obj.value = 1;
        }
    }

    冒泡排序

    function bubbleSort(arr) {
        var len = arr.length;
        for (var i = 0; i < len; i++) {
            for (var j = 0; j < len - 1 - i; j++) {
                if (arr[j] > arr[j+1]) {        //相邻元素两两对比
                    var temp = arr[j+1];        //元素交换
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        return arr;
    }

    选择排序
    在时间复杂度上表现最稳定的排序算法之一,因为无论什么数据进去都是O(n²)的时间复杂度。。。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。

    function selectionSort(arr) {
        var len = arr.length;
        var minIndex, temp;
        for (var i = 0; i < len - 1; i++) {
            minIndex = i;
            for (var j = i + 1; j < len; j++) {
                if (arr[j] < arr[minIndex]) {     //寻找最小的数
                    minIndex = j;                 //将最小数的索引保存
                }
            }
            temp = arr[i];
            arr[i] = arr[minIndex];
            arr[minIndex] = temp;
        }
        return arr;
    }

    插入排序
    插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。当然,如果你说你打扑克牌摸牌的时候从来不按牌的大小整理牌,那估计这辈子你对插入排序的算法都不会产生任何兴趣了。。。
    插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入。对于这种算法,得了懒癌的我就套用教科书上的一句经典的话吧:感兴趣的同学可以在课后自行研究。。。

    function insertionSort(arr) {
        var len = arr.length;
        var preIndex, current;
        for (var i = 1; i < len; i++) {
            preIndex = i - 1;
            current = arr[i];
            while(preIndex >= 0 && arr[preIndex] > current) {
                arr[preIndex+1] = arr[preIndex];
                preIndex--;
            }
            arr[preIndex+1] = current;
        }
        return arr;
    }

    js深拷贝方式一: 递归拷贝

    var clone = function(obj) {
      var newObj = obj.constructor === Array ? [] : {};
      for( var key in obj) {
        newObj[key] = typeof obj[key] === 'Object' ? clone(obj[key]) : obj[key];
      }
    
      return newObj;
    }

    js深拷贝方式2,利用json对象转化为字符串的方法

    var clone2 = function(v) {
      return (
        JSON.parse(JSON.stringify(v))
      );
    }

    毫秒转换为年月日时分秒

    function timestampToTime(timestamp) {
        var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
        Y = date.getFullYear() + '-';
        M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
        D = change(date.getDate()) + ' ';
        h = change(date.getHours()) + ':';
        m = change(date.getMinutes()) + ':';
        s = change(date.getSeconds());
        return Y + M + D + h + m + s;
    }
    function change(t) {
        if (t < 10) {
            return "0" + t;
        } else {
            return t;
        }
    }

    js模糊查询(表格td)

    $("#filterName").keyup(function() {
        $("table tbody tr").hide();
        $(".inv_neirong").filter(":contains('" + ($(this).val()) + "')").parent().show();
    })

    视频插件

    <object width='541' height='450'>
        <param name='allowFullScreen' value='true'>
        <param name='movie' value='http://img1.c0.letv.com/ptv/player/swfPlayer.swf?autoPlay=0&id=31121775'/>
        <embed src='http://img1.c0.letv.com/ptv/player/swfPlayer.swf?autoPlay=0&id=31121775' width='541' height='450' allowFullScreen='true' type='application/x-shockwave-flash'/>
    </object>

    获取日期之间的日期数组

    Date.prototype.format = function() {
        var s = '';
        var mouth = (this.getMonth() + 1) >= 10 ? (this.getMonth() + 1) : ('0' + (this.getMonth() + 1));
        var day = this.getDate() >= 10 ? this.getDate() : ('0' + this.getDate());
        s += this.getFullYear() + '-'; // 获取年份。  
        s += mouth + "-"; // 获取月份。  
        s += day; // 获取日。  
        return(s); // 返回日期。  
    };
    
    function getAll(begin, end) {
        var dateArr=[];
        var ab = begin.split("-");
        var ae = end.split("-");
        var db = new Date();
        db.setUTCFullYear(ab[0], ab[1] - 1, ab[2]);
        var de = new Date();
        de.setUTCFullYear(ae[0], ae[1] - 1, ae[2]);
        var unixDb = db.getTime();
        var unixDe = de.getTime();
        for(var k = unixDb; k <= unixDe;) {
            dateArr.push((new Date(parseInt(k))).format());
            k = k + 24 * 60 * 60 * 1000;
        }
        console.log(dateArr);
    }
  • 相关阅读:
    [Python][小知识][NO.3] Python 使用系统默认浏览器打开指定URL的网址
    [Python][小知识][NO.2] Python 字符串跨行连接,或拆分为多行显示
    [Python] wxPython 状态栏组件、消息对话框组件 学习总结(原创)
    [Python][小知识][NO.1] Python字符串前 加 u、r、b 的含义
    [Python] wxPython 编辑框组件学习总结 (原创)
    [Python] wxPython 菜单栏控件学习总结(原创)
    [Python] wxPython 基本控件 (转)
    HDU 2086 A1 = ? (找规律推导公式 + 水题)(Java版)
    HDU 1840 Equations (简单数学 + 水题)(Java版)
    UVA 1152 4 Values whose Sum is 0 (枚举+中途相遇法)(+Java版)(Java手撕快排+二分)
  • 原文地址:https://www.cnblogs.com/weiyf/p/9512004.html
Copyright © 2020-2023  润新知