js 算法

 

 

 

 

 

 

 

 

12、

 

11、

   // 计算时间差,返回相差的天/时/分/秒

    //1 两个日期对象如何相减

    var d1 = new Date();

    var d2 = new Date(2017, 9, 1);

    // d2.valueOf() - d1.valueOf()

    console.log(d1 - d2);  // 4692437476  两个时间相差的毫秒数

 

    //4692437476  相差的总的毫秒值

    //相差的天数 = 4692437476 / 1000 / 60 / 60 / 24

    //相差的小时数 = 4692437476 / 1000 / 60 / 60 % 24

    //相差的分钟数 = 4692437476 / 1000 / 60 % 60 

    //相差的秒数 = 4692437476 / 1000 % 60

 

function getInterval(start, end) {

      // 两个日期对象,相差的毫秒数

      var interval = end - start;

      // 求 相差的天数/小时数/分钟数/秒数

      var day, hour, minute, second;

 

      // 两个日期对象,相差的秒数

      // interval = interval / 1000;

      interval /= 1000;

 

      day = Math.round(interval / 60 / 60 / 24);

      hour = Math.round(interval / 60 / 60 % 24);

      minute = Math.round(interval / 60 % 60);

      second = Math.round(interval % 60);

 

      return {

        day: day,

        hour: hour,

        minute: minute,

        second: second

      }

    }

 

    var d1 = new Date();

    var d2 = new Date(2017, 9, 1);

 

    var o = getInterval(d2, d1);

    console.log(o);

10、

 // 写一个函数,格式化日期对象,返回yyyy-MM-dd HH:mm:ss的形式

    function formatDate(date) {

      var year = date.getFullYear(),

          month = date.getMonth() + 1,

          day = date.getDate(),

          hour = date.getHours(),

          minute = date.getMinutes(),

          second = date.getSeconds();

 

      month = month < 10 ? '0' + month : month;

      day = day < 10 ? '0' + day : day;

      hour = hour < 10 ? '0' + hour : hour;

      minute = minute < 10 ? '0' + minute : minute;

      second = second < 10 ? '0' + second : second;

 

      //return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;

      console.log(year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second);

    }

    formatDate(new Date());

   //  var d = new Date();

   //  var dateStr = formatDate(d);

   //  console.log(dateStr);

 

   //  var d = new Date(2017, 8, 10);

   //  var dateStr = formatDate(d);

   //  console.log(dateStr);

9、

    var d = new Date();

    // 打印日期对象的时候。内部调用了toString()

    console.log(d);

    console.log(d.toString());

    console.log(d.toDateString());

    console.log(d.toTimeString());

    console.log(d.toLocaleDateString());

    console.log(d.toLocaleTimeString());

    // 获取日期中的指定部分

    var  d = new Date();

    console.log(d.getFullYear());

    // !--------注意:月份是从0开始的-------------

    console.log(d.getMonth() + 1);

    console.log(d.getDate());

    console.log(d.getHours());

    console.log(d.getMinutes());

    console.log(d.getSeconds());

    // 获取当前时间的毫秒值    静态成员

    var num = Date.now();   // 浏览器兼容问题  HTML5

    console.log(num);

    var num2 = new Date();   // 浏览器兼容问题  HTML5

    console.log(num2);

    // 如何获取日期对象的毫秒值

    var d = new Date();

    // 获取日期对象的毫秒值  不用我们调用

 console.log(d.valueOf());

    // 和valueOf的作用是一样的

    console.log(d.getTime());

8、// Math对象和Date对象的区别

    // Math 不是一个构造函数,里面提供是静态成员

    // var MyMath = {

    //   PI: 3.14,

    //   max: function () {

    //   }

    // }

    // 静态成员

    // MyMath.PI

    // MyMath.max();

    // 

    // Date 是一个构造函数,首先要通过new Date() 来创建日期实例(对象),实例成员

    // var d = new Date();

   console.log(d);

    // GMT 格林威治时间   世界标准时间

    // GMT+0800 (中国标准时间)

    // 

    // 距离1970-1-1相差的毫秒数

 console.log(d.valueOf());

7、  静态成员和实例成员

var MyMath = {

    PI: 3.1415926,

    max: function () {

    },

    min: function () {

    }

  }

  // 工具中使用静态成员

  // 静态成员 : 直接使用对象来调用的

  console.log(MyMath.PI);

  // MyMath.max()

  //

  // 当有很多个对象的时候  使用构造函数的形式来创建对象

  // 实例成员 : 构造函数中的成员就是实例成员

  // 什么是实例:对象的另一种说法

  function Person(name, age) {

    this.name = name;

    this.age = age;

    this.sayHi = function () {

      console.log("sayHi");

    }

  }

  // 通过构造函数创建对象

  var p = new Person('zs', 18);

  p.sayHi();

6、

var MyMath = {

  max: function () {

    var max = arguments[0];

    for (var i = 1; i < arguments.length; i++) {

      if (max < arguments[i]) {

        max = arguments[i];

      }

    }

    return max;

  },

  min: function () {

    var min = arguments[0];

      for (var i = 1; i < arguments.length; i++) {

        if (min > arguments[i]) {

          min = arguments[i];

        }

      }

      return min;

  }

};

console.log(MyMath.max(10, 1, 100, 20));

console.log(MyMath.min(10, 1, 100, 20));

5、Math.max

  var arr = [1,3,2,9,6];

  console.log(Math.max(1,3,2,9,6));

  console.log(Math.max.apply(null, arr));

4、

 //取10-20之间的随机整数
        var num1 = 10;
        var num2 = 20;
        var arry = [];
        for(var i=0;i<20;i++){
            var suiji = Math.floor((num2-num1+1)*Math.random())+num1;
            arry.push(suiji);
        }
        alert(arry);

3、  // 生成 min 到 max 之间的随机数,parseInt() 函数可解析一个字符串,并返回一个整数。

    var min = 10;

    var max = 100;

    console.log( parseInt(Math.random() * (max - min) + min));

2、// 优化数组排序

    var num = 0;

    function sort(array) {

        for (var i = 0; i < array.length -1; i++) {

          var isSort = true;

          for (var j = 0; j < array.length -1 - i; j++) {   //num =  9

            num++;

              if (array[j] > array[j+1]) {

                 isSort = false;

                 var tem = array[j];

                 array[j] = array[j+1];

                 array[j+1] = tem;

              }

          }

          // 判断是否排好了

          if (isSort) {

            break;

          }

        }

      }

    

    var array = [34, 12, 88, 20, 30];

    sort(array);

    console.log(array);

    console.log(num);

 

1、数组排序

    var num = 0;

    function sort(array) {

        for (var i = 0; i < array.length; i++) {

          console.log(i+"##########");

 

          // for (var j = 0; j < array.length; j++) {   num = 20

          // for (var j = i; j < array.length; j++) {   num = 15

          for (var j = array.length-1; j > i; j--) {   //num =  10

            console.log(array[i]);

            console.log(array[j]);

            console.log(i+"//");

            num++;

              if (array[i] > array[j]) {

                 var tem = array[i];

                 array[i] = array[j];

                 array[j] = tem;

              }

          }

        }

      }

    var array = [34, 12, 88, 20, 30];

    sort(array);

    console.log(array);

    console.log(num);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值