JS数组

1.数组,即一组数据,使用一个变量来存放多个数据

2.声明数组

  (1)var 数组名 = [数据1,数据2,数据3,... ...]

  (2)var 数组名 = new Array(数据1,数据2,... ...)

3.数组是引用类型的对象

  引用类型的对象,是将数据保存在“堆”中的,在“栈”中,会对“堆”中数据的地址进行引用

  (1)将数组赋值给其他变量时,实际赋的是数组的地址

  (2)数组在做参数的时候,传递进去的实际上是地址(按地址传递)

  (3)null  表示的是让引用类型的对象不再指向任何空间,一般用于主动释放对象的空间

4.访问数组的元素

  赋值,取值都是使用下标来完成

  (1)为数组的元素赋值

    数组名 [下标] = 值

ex:
var arr = ["山东","河南"];
            //将第二个元素变为河北
            arr[1] = "河北";
            //在第三个位置增加一个元素
            arr[2] = "山西";
            //在第六个位置增加一个元素
            arr[5] = "北京";
            console.log(arr);

运行结果:

 

  (2)获取数组中的值

    数组名[下标]

  (3)获取数组的长度

    数组 . length

    (1)可以将数组的length属性值设置为0,来清空数组

    (2)配合循环,做数组的循环遍历操作

    (3)配合着数组,找到最新元素要插入的位置

练习:

(1)定义一个函数,手动录入数组并查找数组中的最大值

 

//定义一个函数,找到整数数组中的最大值
            function findMax(){
                //手动录入数据到数组中
                var arr = [];
                do{
                    var input = prompt("请输入一个整数(exit退出)");
                    if(input != "exit"){
                        arr[arr.length]=parseInt(input);
                    }
                }while(input != "exit")
//打印输出数组 console.log(arr);
//定义一个变量为max,并取值为数组的第一个整数,依次跟后边的整数比较,如果大于max,则赋值给max,直到循环结束 var max = arr[0]; for(var i=1;i<arr.length;i++){ if(max<arr[i]){ max = arr[i]; } } console.log("该数组的最大值为:"+max); }

(2)定义一个函数,查找指定元素的位置(下标)

function findArray(){
                //定义一个数组
                var array = [2,4,3,5,7,9,0];
                //声明一个变量index,初始值为 -1,用于保存找到元素的下标
                var index = -1;
                //从弹框中录入待查找的数据index
                var find = prompt("请输入要查找的数据");
                //遍历循环数组,取出每个元素与find比较,如果相等,就将下标赋值给index
                for(var j=0;j<array.length;j++){
                    if(array[j] == find){
                        index = j;
                    }
                }
                //判断index的值是否为-1,如果为-1,则提示为找到,否则打印index的值
                if(index == -1){
                    console.log("未找到");
                }else{
                    console.log("您查找的数据的下标为"+index);
                }
             }

 (3)改进:定义一个函数,查找指定元素的位置,如果有多个相同的元素,下标全部打印

function findArray(){
                //定义一个数组
                var array = [2,4,3,5,7,9,0,3,2];
                console.log(array);
                //声明一个index空数组,用于保存出现的所有下标
                var index = [];
                //从弹框中录入待查找的数据find
                var find = prompt("请输入要查找的数据");
                //遍历循环数组,取出每个元素与find比较,如果相等,就将下标保存到index中
                for(var j=0;j<array.length;j++){
                    if(array[j] == find){
                        index[index.length] = j;
                    }
                }
                //判断index数组的长度,如果长度为0,则输出未找到,负责输出index
                if(index.length == 0){
                    console.log("未找到");
                }else{
                    console.log("您查找的数据下标为"+index);
                }
            }

 5.使用 for…in 遍历数组

语法:

  for(var 变量 in 数组){

    //变量:表示的是数组中的每个元素的下标(属于 string 类型)

  }

6.关联数组

  用字符串做下标,就是关联数组

  var array = []; 
  array["西游记"] = "古代神话故事";
  array["红楼梦"] = ["贾宝玉","林黛玉"];

注意:

  (1) 关联数组是不算做数组内容的,不记录到length中

  (2)关联数组只能通过字符串做下标取值

  (3)允许通过 for…in 来循环遍历关联数组的字符串下标(也能遍历处内容的数字下标)

posted @ 2020-10-02 21:26  you_rgb  阅读(164)  评论(0)    收藏  举报
//一下两个链接最好自己保存下来,再上传到自己的博客园的“文件”选项中