美文网首页web
03-JS基础(数组)

03-JS基础(数组)

作者: Viarotel | 来源:发表于2019-02-12 11:41 被阅读4次

    javascript基础三

    switch语句

    适合比较少的种类判断,条理清晰

    只有极少的情况需要判断,可以通过switch case语句.

    Switch语句可以对变量进行集体判断:

    // 1.获取用户输入
            // 列举
            var fruit  = prompt('请输入水果名称!');
            //在有限的类别判断时候,可以使用,代码逻辑更清晰
            switch (fruit) {
                case '苹果':
                    alert('苹果很好吃!');
                    break;
                case '梨':
                    alert('梨很脆!');
                    break;
                case '香蕉':
                    alert('香蕉很甜!');
                    break;
                default:
                    alert('我也没吃过!');
                    break;
            }//break;缺少后对失去控制,继续执行,后面的语句
    

    While循环:

    先判断后执行

    While 循环一定要有跳出条件,条件一直为真时会进入死循环

    特殊:有些情况会刻意制造死循环,推送获取信息

    var num = 0 ;
            // 当xxx的时候
            // 特殊:有些情况会刻意制造死循环,
            while(num<10){
                console.log('num==>'+num);
                num ++;
            }
    

    Do..while循环:

    • 先执行后判断,先斩后奏
    • do while循环在条件不满足的情况下会比while循环多执行一次代码

    Break语句:

    • 在循环体内,只要代码遇到break,程序立马结束当前循环
    • 当前循环指的是break语句所在的循环体。

    Continue语句:

    • Continue语句指的是跳出本次循环,该语句后面的代码不再执行。
    • 语句后面的循环外的代码也不再执行。

    数组(定义,赋值,取值)

    通过对象方式创建数组

    • var arr = new Array();

    直接创建数组

    • var arr = []

    命名习惯

    • 一个数组: var arr; var a; var b;
    • name数组: var names; 或者nameArr = new Array()

    数组中通过下标的方式进行赋值。

    • 下标从0开始。arr[0] = 123;
    • 通过下标确定数组中某个值
    • 通过数组名.length获取数组长度(元素个数)
      • var ages = new Array();
      • ages.length 返回数组长度

    数组遍历

    • 以下两种方法效果等同,一般用第一种
    var arr = [3,1,65,283,1,3,32,1];
    //注意: 1. i从0开始
    // 2. i < arr.length
    for(var i = 0 ; i < arr.length ; i++){
        console.log('数组下标为'+i+'的值为==>'+arr[i]);
    }
    
    ////////////////////////////////////////////////////////////////////////////
    
    var arr = [3,1,23,23,15,213,5];
    // for ... in...
    for(var a in arr){//变量a会返回数组长度
        // console.log('a==>'+a);
        console.log('下标为'+a+'的值为'+arr[a]);
    }
    

    length() 数组长度&&数据的类型

    • 可存放字符串,但是一般不这样做
    //创建一个空数组
    var arr = [3,5,7];
    //注意: 数组一般用于存放同一类的数据集合
    var arr2 = [3,'张三',true,'5'];
    arr[0] = 1;
    arr[1] = 2;
    console.log(arr);
    console.log(arr2);
    //数组的属性:
    // xxx.abc() ==> 通过对象调用方法  小狗跑 小狗跳
    // xxx.abc  ==> 通过对象查看属性     小狗的体重  小狗的颜色
    console.log('数组长度==>'+arr.length);
    

    数组合并

    concat()

    var arr1 = [1,3,5];
    var arr2 = [7,9,11];
    // concat 不会影响原来的数组 需要新的变量接收
    var arr3 = arr2.concat(arr1);
    console.log(arr3);//返回arr3=[7,9,11,1,3,5]
    

    把数组转换为字符串

    join()

    通过指定的分隔符进行连接成为一个字符串

      var arr = [1,3,5,6,7];
    //join可以把数组转换为字符串.
    //如果没有参数 默认逗号隔开
    var str = arr.join('!');
    console.log(str);//控制台输出1!3!5!6!7
    

    把字符串转换为数组

    split()

    • var str2 = 'Hi  i am  fine  today';
            var str3 = 'a|b|c|d|e'; 
            //split 打断 可以把字符串转换为数组
            //注意: 空格 也算字符 var str = ''; var str2 ='  ';
            // split 处理的结果是 数组类型
            var arr2 = str2.split('i');//括号内的字符作为打断点
            var arr3 = str3.split('|');// 以"|"作为打断点
            console.log(arr2);//控制台输出["H", "  ", " am  f", "ne  today"]
            console.log(arr3);//控制台输出["a", "b", "c", "d", "e"]
      

    数组内的增删查改

    push()

    从后面插入一个值 ,并返回新的长度

    unshift()

    从前面插入,并返回新的长度

    pop()

    删除最后一个元素 并且返回被删除的值

    shift()

    删除第一个元素 并且返回第一个删除的值

    var arr = [1,2];
    arr.push(3);//会影响原来的数组
    var rs = arr.unshift(0);
    console.log(arr);//控制台输出,[0, 1, 2, 3]
    console.log('从前面插入一个值,返回新的长度为:'+rs);//输出从前面插入一个值,返回新的长度为:4
    var arr2 = ['a','b','c','d','e']; 
    var rs1 = arr2.pop();
    var rs2 = arr2.shift();
    console.log(arr2);//输出 ["b", "c", "d"]
    console.log('pop删除了==>'+rs1);//输出pop删除了==>e
    console.log('shift删除了==>'+rs2);//输出shift删除了==>a
    

    算法

    九九乘法表:

    /*控制台输出:九九乘法表
                1*1=1;
                2*1=2 2*2=4;
                ...
                9*1=9 9*2=18 ... 9*9=81
    */
    //方法一:
            // 问: 打印几行?
            for(var i = 1 ; i <= 9 ; i ++ ){
                var str = '';
                // 问: 每一行打印几个?
                for(var j = 1 ; j <= 9 ; j ++ ){
                    if(j>i){
                        break;
                    }
                    str += i+'*'+j+'='+i*j+' ';
                    //等同str = str + i+'*'+j+'='+i*j+' ';
                }
                console.log(str);
            }
    //方法二:
            // 问: 打印几行?
            for(var i = 1 ; i <= 9 ; i ++ ){
                var str = '';
                // 问: 每一行打印几个?
                for(var j = 1 ; j <= i ; j ++ ){
                    str += i+'*'+j+'='+i*j+' ';
                    //等同str = str + i+'*'+j+'='+i*j+' ';
                }
                console.log(str);
            }
    

    冒泡排序

    //方法一:
    var arr = [23,54,11,61,5,13,9];
    var j = arr.length;
    while (j > 0){
        for (var i = 0; i < j - 1; i++) {
            if (arr[i] > arr[i + 1]){
                var temp = arr[i];
                arr[i] = arr[i + 1];
                arr[i + 1] = temp;
            }
    
        }
        j--;
    }
    console.log('最终结果为:'+arr);
    //方法二
    var arr = [10,8,1,7,5,2];
    for(var j = 0 ; j < arr.length - 1 ; j ++){
        // 第一轮
        for(var i = 0 ; i < arr.length - 1 - j; i ++){//每进行一轮,可以少比一次
            // 如果顺序错误,交换位置
            if(arr[i]>arr[ i+ 1]){
                var temp = arr[i];
                arr[i] = arr[i + 1];
                arr[i + 1] = temp;
            }
        }
        console.log('第'+(j + 1)+'轮的结果为:');
        console.log(arr);
    }
    console.log('最终结果为:');
    console.log(arr);
    

    选择排序

    var arr = [230,4,64,6,24,75,9,12,34];   
    var len = arr.length;
    var min;
    for (var i = 0; i < len - 1; i++){
        min = i;
        for (var j = i + 1; j < len; j++){
            if (arr[min] > arr[j]){//寻找最小值
                min = j;//保存最小值的索引
            }
        }
        //如果最小值不是最开始的值进行替换
        if (min != i){
            var temp = arr[i];
            arr[i] = arr[min];
            arr[min] = temp;
        }
    }
    alert(arr);
    

    相关文章

      网友评论

        本文标题:03-JS基础(数组)

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