JavaScript【倒计时】、【数组去重】、【查找字符串中重复元素】

4.倒计时

案例分析

①核心算法:输入的时间减去现在的时间就是剩余的时间,即倒计时,但是不能拿着时分秒相减,比如05分减去25分,结果会是负数的。

②用时间戳来做。用户输入时间总的毫秒数减去现在时间的总的毫秒数,得到的就是剩余时间的毫秒数。

③把剩余时间总的毫秒数转换为天、时、分、秒(时间戳转换为时分秒)

转换公式如下:

●d= parselnt(总秒数/ 60/60/24); //计算天数

●h= parselnt(总秒数/ 60/60%24) // 计算小时

●m= parseInt(总秒数/60 %60); // 计算分数

●s= parseInt(总秒数%60);

//计算当前秒数

*代码中声明的变量times除以1000是毫秒转换成秒(1s=1000ms)

5.数组去重

// 有一个数组,要求去除数组中的重复元素
// 目标:把就数组里面不重复的元素选取出来放到新数组中,重复的元素只保留一个,放到新数组中去重
// 核心算法:遍历旧数组,然后拿着旧数组元素去查询新数组,如果该元素在新数组中没有出现过,就添加1,否则不添加
 //如何知道该元素是否存在?利用 新数组.indexOf(数组元素),如果返回是-1,就说明新数组里面没有该元素

function unique(arr) {
    var newArr = [];
    for (i = 0; i < arr.length; i++) {
        if (newArr.indexOf(arr[i]) === -1) {
              newArr.push(arr[i]);
        }
    }
    return newArr;
}
var demo = unique(['red', 'blue', 'yellow', 'red', 'green', 'yellow']);
console.log(demo);

6.查找字符串中重复元素

//查找字符串:"abcoecfjqpdojfjiow"中所有o出现的位置及次数
//核心算法:先查找第一个o出现的位置
//然后,只要indexOf返回的结果不是-1,就继续往后查找
//因为indexOf只能查找到第一个,所以后面的查找,利用第二个参数,当索引加1,从而继续查找
 var str = "obcoecfjqpdojfjiow";
 var index = str.indexOf('o');
 var num = 0;
 while (index !== -1) {
      console.log(index);
      num++;
      index = str.indexOf('o', index + 1);
 }
 console.log('“o”输入的次数为:' + num);
posted @ 2022-09-05 14:23  chichi0002  阅读(72)  评论(0编辑  收藏  举报