03-JS基础(数组)

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基础(数组))