1、给定一个数组,数组中的值是布尔类型,返回其中true的数量

  1. function numOfTrue () {
  2. }
  3. numOfTrue([true,false,true])// 2
  4. numOfTrue([true,false,true,true,true,true,true,false,true,])// 7
  1. function numOfTrue(ary){
  2. var num=0;
  3. ary.forEach(item=>{
  4. if(item)num++;
  5. });
  6. return num;
  7. }

2、给定一个整数数组。

返回一个数组,其中第一个元素是正数的个数,第二个元素是负数的和。
如果输入数组为空或NULL,则返回空数组。

  1. function count(ary) {
  2. //var rstarr=[];//存放结果
  3. if(!ary||ary.length===0){
  4. return [];
  5. }
  6. var Znum=0;//存放正数的个数
  7. var FSum=0;//存放负数的和
  8. ary.forEach(item=>{
  9. if(item>0){
  10. Znum++;
  11. };
  12. if(item<0){
  13. FSum+=item;
  14. }
  15. });
  16. //rstarr.push(Znum,FSum);
  17. //return rstarr;
  18. return [Znum,FSum];
  19. }
  20. count([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, -11, -12, -13, -14, -15]); // [10, -65]
  21. count();// []
  22. count([]);// []

3、给定一个数组和一个关键词

查找该关键词在数组中第一次出现的索引,和一共出现了几次,返回字符串‘关键词xxx在索引x处第一次出现,一共出现了n次’;
如果没出现关键词,返回’关键词xxx没在数组中出现’

 function findStr(arr,keyWord) {
            //indexof索引 
            //fisrtIndex变量存储第一次出现的索引
            //sumNum 变量存储一共出现了多少次
            if(arr.indexOf(keyWord)===-1){
                return `关键词${keyWord}没在数组中出现`
            }
            var fisrtIndex=-1;
            var sumNum=0;
            arr.forEach((item,index)=>{
                if(item===keyWord){
                    //firstIndex需要记录第一次出现的索引
                    //如果firstIndex被赋值过了(不等于-1 就不在赋值了)
                    if(fisrtIndex === -1){
                        fisrtIndex=index;
                    }
                    sumNum++;                   
                }
            })
            return `关键词${keyWord}在索引${fisrtIndex}处第一次出现,一共出现了${sumNum}次`;
  }
findStr(['hay', 'junk', 'hay', 'hay', 'moreJunk', 'needle', 'randomJunk'], 'needle')//'关键词hneedle在索引5处第一次出现,一共出现了1次'
findStr(['hay', 'junk', 'hay', 'hay', 'moreJunk', 'needle', 'randomJunk'], 'hay')//'关键词hay在索引0处第一次出现,一共出现了3次'

4、倒计时案例

实现效果:距离目标时间2021年04月20日 18:30:00还有几小时几分钟几秒
第三周作业 - 图1

<script>
    //4、倒计时案例
    //实现效果:距离目标时间2021年04月20日 18:30:00还有几小时几分钟几秒
    //获取当前时间 
    //现在的时间
    //目标时间:"2021-4-20 18:30:00"
    //时间差:new Date("2021-4-20 18:30:00")-new Date()
    function zero(num) {
        return num < 10 ? "0" + num : num;
    }
    function class1() {
        var result = new Date("2021-4-20 18:30:00") - new Date();
        if (result <= 0) {
            clearInterval(timer);
            timer = null;
            return "倒计时结束!";
        };
        var hour = Math.floor(result / 1000 / 60 / 60);
        var minutes = Math.floor(result / 1000 / 60 % 60);
        var seconds = Math.floor(result / 1000 % 60);
        return zero(hour) + "时" + ":" + zero(minutes) + "分" + ":" + zero(seconds) + "秒";
    }
    var obox = document.getElementById("box");
    obox.innerHTML = class1();
    var timer = setInterval(function () {
        obox.innerHTML = class1();
    }, 1000)
</script>

5、下面输出什么


fn();//5
function fn(){ console.log(1); }
fn();//5
function fn(){ console.log(2); }
fn();//5
var fn = function(){ console.log(3); }
fn();//3
function fn(){ console.log(4); }
fn();//3
function fn(){ console.log(5); }
fn();//3

var i = 0;
function A() {
    var i = 10;
    function x() {
        console.log(i);
    }
    return x;
}
var y = A();
y();
function B() {
    var i = 20;
    y();
}
B();