最近关于一些js问题的解答附上代码

来源:互联网 发布:随机分配软件 编辑:程序博客网 时间:2024/05/17 08:43

这是题目:https://github.com/iszu/web-learning/blob/master/JavaScript%E7%BB%83%E4%B9%A0%E9%A2%98.md#1-计算两个日期的天数差

1. 计算两个日期的天数差

function datedifference(sDate1, sDate2){    //sDate1和sDate2是2006-12-18格式

       var dateSpan,

          iDays;

 

       sDate1 = Date.parse(sDate1);//parse() 方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数。

       sDate2 = Date.parse(sDate2);

       dateSpan = sDate2 - sDate1;

       dateSpan = Math.abs(dateSpan);

       iDays = Math.floor(dateSpan / (24 * 3600 * 1000));//将毫秒数转变成天数

       return iDays

};                                                                   alert( datedifference(new Date(2016, 2, 7), new Date(2016, 4, 12)))  ;

alert(datedifference(new Date(2016, 4, 12),new Date(2016, 2, 7))) ;

2. 计算两个日期的天数差 - 高级版

        function datedifference(sDate1, sDate2){    //sDate1和sDate2是2006-12-18格式

        var dateSpan,

           iDays;                                                                                                                                                     

       sDate1 = Date.parse(sDate1);

       sDate2 = Date.parse(sDate2);

       dateSpan = Math.abs(sDate2 - sDate1);

       iDays = dateSpan / (24 * 3600 * 1000);

       return iDays

};                                                                   alert( datedifference('2016-02-07', '2016-04-12'))  ;

alert(datedifference('2016-04-12','2016-02-07')) ;

3.计算数组中元素重复次数

function countRepeat (arr){

  arr = arr.sort();

  var newArr = [];

   if(arr.length > 0){

      for(let i = 0; i < arr.length; i++){

        var temp = arr[i];

        var count=0;

         for(let j = 0;j < arr.length ; j++){

           if(arr[j] == temp){

              count++;

               }

          }

       newArr.push(`\n\'${temp}\':${count}`)

      }

    }

   return newArr;

}

//上面得到arrs.lengrh个的数组需要把相同的元素去掉

var

    r,

   arrs = [2, 9, 8, 4, 5, 3, 4, 8, 9, 9, 1, 0, 2, 1],

   cutrepaet = countRepeat(arrs);

//alert(countRepeat(arrs))  ;

r = cutrepaet.filter(function (element,index, self) {

   return self.indexOf(element) === index;

});//用filter函数去掉相同的数组元素

alert(r);