js - 数组

来源:互联网 发布:tcl上网络电视要广告 编辑:程序博客网 时间:2024/05/19 10:15
学习目标
  • 认识数组
  • 创建数组
  • 数组元素的读写
  • 数组的长度length
  • 遍历数组
  • 数组常用的方法
  • 数组排序



【前言】引用类型Object.
  1. 引用类型是一种数据结构,用于将数据与功能封装在一起。
  2. 引用类型也称作类,但是这样子称作不是很恰当,javaScript虽然是面向对象的语言,他是它没有类和接口的东西。
  3. 引用类型也称作对象定义。描述的是一类对象所具有的属性和方法。
  4. 引用类型的值(对象)是引用类型的一个实例。
创建Object实例的方式有两种:Object构造函数法与字面量法。


当我们需要存储大量的数据时,就需要数组来存储数据

一、数组的概念
  • Array数组是数据的有序列表;
  • 数组中的每一个值叫做元素。每一个元素都有自己的位置,这个位置叫做索引。索引是从0开始的。
  • ECMAScript数组是没有类型的;
  • ECMAScript同一个数组中可以存储不同类型的数据;
  • ECMAScript语言中数组的长度是可以动态变化的;
  • Array是ECMAScript中常用的引用类型之一。 

二、数组的创建
     1.方式一    构造函数法
     var aColors = new Array();创建了一个空数组;
     var aColors = new Array(20);创建了一个容量为20的数组;
     var aColors = new Array("red","yellow","blue");创建了一个包含三个字符串元素的数组  注意:最后一个元素不可以加逗号,否则报语法错误!
     
【课堂练习】解释下面语句什么意思
var aColors = new Array(3);
var aColors = new Array("black");
     
【注】:使用构造函数创建数组的时候,也可以省略new关键字。


方式二   数组字面量表示法

     var aColors = ["red","yellow","blue"];//创建包含3个字符串的数组
     var aColors = [];创建一个空数组;
     var  aColors = [1,2,3,]这种写法不可以,这样会创建一个容量为3或者4的数组
     【bug】
     在IE8以及之前的版本显示数组的个数是4;在IE9+、firefix、chrome、opera中是3;
     不要使用这种方式创建数组。

三、数组元素的读写--索引法

     //使用构造函数创建容量为5的数组
    var aColors = new Array(5);
    //5个数组元素分别是 aColors[0] aColors[1] aColors[2] aColors[3] aColors[4]
    aColors[0]="red";
    aColors[1]="yellow";
    aColors[2]="blue";


使用随机数动态的为数组赋值
     var aNums = Array(10);
    for(var i = 0; i < 10; i++){

         aNums[i] = Math.random();

    }


var aColors = new Array(10);
数组的的容量是10个,数组元素是aColors[0]...aColors[9]
aColors[10] = "a";
当数组的下标索引超过了数组的容量时,系统会自动将该数组的容量扩充到index+1的大小
四、获取数组的长度
     var aColors = ["red","blue","yellow","white","black","purple"];
     alert(aColors.length);
     【注】数组的length属性非常有特点--他不是只读的。可以通过数组的length属性向数组的末尾扩大数组的容量,或者从数组末尾移除数组元素。

<script type="text/javaScript">
    var aNums = new Array(1,2,3,4,5,6,7,8,9);
    alert(aNums.length);
    //通过修改length属性值 来增大数组的容量
    aNums.length = 20;
    alert(aNums);
    //通过修改数组的length的值。来删除数组中的元素
    aNums.length = 3;
    alert(aNums);

    </script>
     
【课堂练习】随机点名程序

五、遍历数组 for循环   for-in  forEach(ECMAScript5.0中新增加)
遍历数组就是获取数组中的每一个数组元素


【课堂练习】
1、定义一个长度为100的数组,给数组元素赋值为1-1000的随机整数, 输出是偶数的数组元素。
2、还是上面的数组,输出是质数的数组元素;
六、数组常用的方法
  1. arr.push(v1,v2...)
      1. 描述:向数组末尾添加一个或者多个数组元素
      2. 参数:需要添加的数组元素
      3. 返回值:数组的长度
      4. 注意:原数组改变
  2. arr.pop()
      1. 描述:从数组的末尾删除一个数组元素
      2. 返回值:返回删除的元素
      3. 注意:原数组改变
  3. arr.unshift(v1,v2...)
      1. 描述:向数组的头部插入元素
      2. 参数:需要插入的值
      3. 返回值:数组的长度
      4. 注意:原数组改变
  4. arr.shift()
      1. 描述:删除数组的第一个元素
      2. 参数:删除掉的元素
      3. 注意:原数组改变
  5. arr.join("+")
      1. 描述:将数组的值连接成字符串
      2. 参数:字符串
      3. 返回值:拼接成的字符串
  6. arr.reverse()
      1. 描述:将数组的数组元素倒置
      2. 返回值:返回原来的数组
      3. 注意:元数组改变
  7. arr.concat(v1,v2,v3...)
      1. 描述:创建一个新数组,新数组的元素是arr数组的全部元素,再加上参数中的元素
      2. 参数:可以使数组元素,也可以使数组
      3. 返回值:新数组
      4. 注意:原来的数组不改变
  8. arr.slice(start,end)
      1. 描述:返回数组中一部分
      2. 参数:开始的位置,结束的位置
      3. 返回值:数组的一部分
      4. 注意:start的值必须大于1并且不能小于end的值
  9. arr.splice(index,howmany,v1,v2...)
      1. 描述:向数组中添加元素或者从数组中删除元素
      2. 参数:
          1. index--必需,规定添加或者删除元素的地方。赋值表示从数组末尾开始
          2. howmany--必需,要删除项目的个数,如果值为0,则不会删除元素
          3. v1--可选,向数组中添加新的项目
      3.  返回值:改变之后的数组 
10、arr.toString()
          描述:将数组转换成字符串。
          返回值:字符串
11、indexOf(v1) 
          描述:从数组头部查找v1,找到的话返回索引
          参数:要查找的数值
          返回值:索引,没有找到返回-1
12  lastIndexOf(v2)
          
          描述:从数组尾部查找v1,找到的话返回索引
          参数:要查找的数值
          返回值:索引,没有找到返回-1


七、数组排序
  
     冒泡排序 (Bubble Sort)算法:(画图解释)
  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一轮,最后的元素应该会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了最后一个。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。


js数组有自带的排序的函数sort(字符串讲完之后讲)
原理:将数组中每一个数组元素转换成字符串toString();然后进行比较。

0 0
原创粉丝点击