美文网首页
数组- js课程

数组- js课程

作者: 轻思维 | 来源:发表于2017-08-15 23:32 被阅读0次

    js课程———数组

    by——曾庆林

    1,复习内置对象(15分)

    • String
    • Date
    • Math
    • setInterval
    • setTimeout

    2,预习-单词提前背诵

    array       阵列(数组)
    new         新
    length      长度
    shift       去掉
    pop         弹出
    reverse     反的
    concat      合并
    join        链接
    push        退
    splice      剪接 
    split       划开
    sort        排序
    
    

    3知识点

    3.1为什么需要数组(2分钟)

    3.2 如何创建数组 (5分钟)

    方法一

       // 新建一个长度为零的数组
        var 变量名=new Array( );
    
    

    方法二

        // 新建一个长度为N的数组
        var 变量名=new Array( n );
    
    
    

    方法三

        // 新建一个指定长度的数组,并赋值
         var 变量名=new Array( 元素1,元素2,元素3,…);
    
    
    

    方法四

        // 简单方法
         var 变量名=[ 元素1,元素2,元素3,…];
    
    
    

    3.3 如何访问数组(2分钟)

        var arr = ["张三","李四","王五","刘六"];
        arr[2]; //得到结果是 "王五"
        //下标从0开始
    

    3.4 设置数组的值(2分钟)

        var arr = ["张三","李四","王五","刘六"];
        arr[1]="曾庆林";// 设置数组
        arr // ["张三","曾庆林","王五","刘六"]
    

    3.5 遍历数组(5分钟)

    前提知识 数组的长度 arr.legth;
    方法一 for 循环

        var arr = ["张三","李四","王五","刘六"];
        for(var i=0;i<arr.length;i++){
            console.log(arr[i])
        }
    

    方法二 for in

        var arr = ["张三","李四","王五","刘六"];
        for(v in arr){
            console.log(v)
        }
    

    两个方法的优略

        for 循环 当数组的长度被随意改变时造成浪费
        for in  没有下标
    

    3.6 数组的方法(45分钟)

    前6个必须掌握

    方 法 说明
    pop() 删除最后一个元素,返回最后一个元素
    push (元素1,元素2,……) 添加元素,返回数组的长度
    splice(位置,多少[,元素1,元素2,……]) 从数组中删除或替换元素
    sort() 排序数组
    reverse() 倒序数组
    concat(数组2,数组3,……) 合并数组
    join(分割符) 将数组转换为字串
    shift() 删除第一个元素,返回第一个元素
    unshift(元素1,元素2,……) 添加元素至数组开始处
    slice(开始位置[,结束位置]) 从数组中选择元素组成新的数组
    toString 返回一个字符串,该字符串包含数组中的所有元素,各个元素间用逗号分隔

    3.7 案例

    1, 数组常见面试题1(10分钟)
    试一试 明天会问!

    var arr=[];
    var arr2=[];
    alert(arr==arr2);
    
    alert([]==[]);
    
    var arr=[1,2,3];
    var arr2=[1,2,3];
    alert(arr==arr2);
    
    arr2=arr;
    alert(arr==arr2);
    
    arr2[2]=100;
    alert(arr[2]);
    
    

    2, 数组的复制(5分钟)

    1, 用循环复制
    
    2, var arr = ["张三","李四","王五","刘六"];
        var arr2 =  arr.concat([])
    
    

    3, 数组的排序(5分钟)

    var arr =[11,8,25,998,12];
    arr.sort() //排序不对
    arr.sort(function(a,b){
        if(a>b){ retrun 1}
        else{
            return -1;
        }
    })
    

    4, 数组中求最大值(5分钟)

    方法 1 循环
    var arr =[11,8,25,998,12];
    var tempMax=arr[0];
    for(var i=0;i<arr.length;i++){
        if(arr[i]>tempMax){
            tempMax=arr[i]
        }
    }
    console.log(tempMax);
    方法 2
    Math.max.apply(null,arr);
    ?你猜一猜 最小的值怎么求
    

    5, 去掉数组中重复的数(5分钟)
    // 这道题100% 面试中会被问到

    
    var arr =[11,8,25,998,44,32,11,25,12];
    var arr2=[];
    for(var i=0; i<arr.length;i++){
        if(arr2.indexOf(arr[i])==-1){
            // 如果在数组2中没有当前的这个数
            arr2.push(arr[i]);
            // 就把当前的数放入到 数组2中
        }
    }
    console.log(arr2)
    
    

    3.8 案例 随机点名(30分钟)

    知识点:
    如果把字符串转换为数组?

    var str="谢亚平,石晶磊,张圆圆,贾梦龙,董建华,刘伟涛,聂家俊,李冬冬,马克飞,高博,张颖东,洪晓,黄猛,雷宇生,刘玲玲,曹丽飞,宋炎炎,孙俊喃,张晓鸽,陈星星,周阳,魏恩慧,包小夏,安营营,马可萌,王政华,尚世杰,游婷,程杰,刘玉阳,刘银萍,强玉歌,程亮亮,冯栓,黄振鹏,徐开唱,安锐,付双,郝世文,陈锦浩,李梦雨,叶先栋,张万忆,查孟博,郭宁,陈法海,李毅,李艳娇,胡洋东,张治帮,张博,王亚";
    var stuArr=str.split(",");//用逗号把字符串分割为数组
    
    

    知识点:
    如何取一个0-10随机数?

    Math.floor(Math.random()*10);
    
    

    知识点:
    如何获取数组中的一个元素?

    var arr=["谢亚平","石晶磊","张圆圆","贾梦龙","董建华","刘伟涛","聂家俊","李冬冬","马克飞","高博"];
    arr[5];//刘伟涛
    如果把5换成0-10的随机数呢?
    
    

    知识点:
    如何设置一个元素的HTML内容?

    stu.innerHTML="需要设置的内容";
    
    

    间隔调用:
    如何设置一个元素的HTML内容?

    var interId = setInterval(function(){},时间毫秒)
    // 如果坏清除间隔调用
    clearInterval(interId);
    
    

    案例1:实现随机点名

    var str="谢亚平,石晶磊,张圆圆,贾梦龙,董建华,刘伟涛,聂家俊,李冬冬,马克飞,高博,张颖东,洪晓,黄猛,雷宇生,刘玲玲,曹丽飞,宋炎炎,孙俊喃,张晓鸽,陈星星,周阳,魏恩慧,包小夏,安营营,马可萌,王政华,尚世杰,游婷,程杰,刘玉阳,刘银萍,强玉歌,程亮亮,冯栓,黄振鹏,徐开唱,安锐,付双,郝世文,陈锦浩,李梦雨,叶先栋,张万忆,查孟博,郭宁,陈法海,李毅,李艳娇,胡洋东,张治帮,张博,王亚";
            var stuArr=str.split(",");
            var interId=setInterval(function(){
                stu.innerHTML=stuArr[Math.floor(Math.random()*stuArr.length)]
            },50)
            btn.onclick=function(){         
                if(btn.innerHTML=="停止"){                
                    clearInterval(interId);
                    btn.innerHTML="开始";
                }else{
                    interId=setInterval(function(){
                        stu.innerHTML=stuArr[Math.floor(Math.random()*stuArr.length)]
                    },50)
                    btn.innerHTML="停止"
                }
            }
    

    总结 (提问默写数组方法)(5分钟)

    作业

    1. 今天的案例2遍
    2. 如何判断一个变量他是数组呢?
      提示 typeof instanceof
    3. js如果准确的判断一个变量的类型呢(自己百度)
    4. 统计一个字符串出现最多的字母(和去重是不是反的?)
    给出一段英文连续的英文字符窜,找出重复出现次数最多的字母
    输入 : afjghdfraaaasdenas
    输出 : a
    
    
    1. 找出下列正数组的最大差值比如
    输入 [10,5,11,7,8,9]
     
    输出 6
    这是通过一道题目去测试对于基本的数组的最大值的查找,很明显我们知道,最大差值肯定是一个数组中最大值与最小值的差。
    
    

    6 随机生成指定长度的字符串

    实现一个算法,随机生成指制定长度的字符窜。
    比如给定 长度 8  输出 4ldkfg9j
    
    

    推荐一个网站

    http://lib.csdn.net/base/javascript
    js 知识库

    相关文章

      网友评论

          本文标题:数组- js课程

          本文链接:https://www.haomeiwen.com/subject/cfdbrxtx.html