20180725- JS数组的基础知识

数组

一、定义

1.数组的文字定义

 

      广义上说,数组是相同类型数据的集合。但是对于强类型语言和弱类型语言来说其特点是不一样的。强类型语言数组和集合有以下特点。

 

            数组强类型语言:1.数组里面只能存放相同数据类型的数; 2.定义数组的时候需要制定一个长度(可以存放的元素数量);3.内存空间是连续的;

 

            集合弱类型语言:1.可以存放任意类型的数据;2.定义的时候不需要指定长度;3.内存空间不连续;

 

      相对于强类型语言来说,弱类型语言数组的特点更像是集合。所以称作弱类型集合;有如下特点。

 

            JS数组:1.可以存放任意类型数据;2.定义时候不需要指定长度;

 

2.数组定义方式

 

① 使用关键字 var attr = Array()

 

      关键字Array代表数组,var attr = Array();这句话就是定义一个数组,数组的名字叫做attr。但是是一个空的数组。如果在()加上一些数字或者字符,就成为一个有内容的数组,例如var attr = Array(1,3.14,"aa"),1,3.14,"aa"就是数组的3个元素,各元素用“,”隔开,字符串要加“”。3个元素的索引分别为0,1,2(索引从0开始)。如果要取数组里面的元素,要用alert(attr[2]);,意思是输出attr数组里面的索引为2的元素,输出的结果就是“aa”。

 

 定义和取值代码为:

var attr = Array(1,3.14,"aa");

alert(attr[2]);

② 使用关键字 var attr = Array()

 

      和第一种定义方式不同,第一种是在()直接给元素,而此种方式是在()直接给数组的长度。例如var attr = Array(5)就代表这个数组的长度是5(数组里面最多放5个元素)。attr[]可以取值,也可以赋值。如果直接拿来用,就是取值。如果放在等号的左侧,那就是赋值。

//例如:

var attr = Array(5);

attr[1] = “aa”

alert(attr[1]);     // 输出的结果也是“aa”

③ 使用方括号 var attr= [];

 

     第三种是去掉Array关键字,直接在等号后面写[],然后再在[]里面写各元素。var attr = [1,3.14,"aa"];,这样写也是加入了3个元素

 

  例如:

var attr = [1,3.14,"aa"];

alert(attr[1]);    输出结果也是“aa”

    上面三种定义方式都可使用,正常情况下使用方括号方法比较好,较为简单。数组定义完以后,如果想操作里面的元素,取值和赋值都是用attr[],取里面的索引号。在弱类型语言中,给定数组的长度是没有用的,可以随时添加或删除元素。

 

  例如:

var attr = [1,3.14,"aa"]; //此数组的长度为3



attr[3] = “bb";//添加了新的元素,索引号为3.



alert(attr[3]); //输出索引号为3的元素。输出结果为“bb”。

二、数组的属性

 

1.  length    

 

      attr.length,length属性代表数组的长度(数组内元素的数量)。

 

       示例:

var attr = [1,3.14,"aa"];

ttr[3] = “bb”;

alert(attr.length);   // 输出的是数组的长度,输出结果是4。

2. push

 

往数组里面追加元素,追加元素的方式有很多,直接写入attr[4] = “cc”;就是追加元素的一种。有一种方法是attr.push();,()内就是要追加的元素。

 

      示例:

var attr = [1,3.14,"aa"];

attr[3] = “bb”;

attr[4] = “cc”;

attr.push(“dd”);

alert(attr.length);  //在原来的基础上增加了2个新的元素,输出的length长度结果为6。

三、数组的遍历

 

      数组的遍历意思是数组里面可能存了n个数据,在使用这一个数组时,要使用到里面所有的数据,所以就要把里面所有的元素都取一遍。遍历的方式有以下几种:

 

1.for循环

      示例:

var attr = [1,3.14,"aa"];

attr[3] = “bb”;

attr[4] = “cc”;

attr.push(“dd”);

 for(var i=0; i<attr.length;i++)     i<attr.length表示小于元素的数量

{

    alert(attr[i]);   //输出结果是1,3.14,aa,bb,cc,dd

}

 

      使用for循环时一定要控制住循环的次数,因为如果次数多了程序就会报错或崩溃。如果上面的代码中 i<=attr.length,1,3.14,aa,bb,cc,dd输出完以后就会出现undefind。

 

2.foreach

 

      在JS里面没有 foreach这个词,JS里面把foreach和for合在一起了。在其它语言里可以写 foreach,JS里面写for。

 

     foreach的写法为for(var a in attr),数组的名字是attr

 

     示例:

for(var a in attr) //取数组attr里面的元素。取1个,循环;再取1个,循环;直至把所有的元素取完。

{

    alert(attr[a]);

}

//另外:如果上面的代码输出结果改为alert(a);,输出的就是元素的索引,0,1,2,3,.....

 

3.数组遍历举例

 

例子1:输入10个成绩,求总分,最高分,最低分。

      总分:

 var attr =[89,80,76,49,90,25,85,76,59,40];//10个成绩

 var sum = 0;]//总分赋值0

 for(var i=0; i<attr.length;i++)//循环条件

 {

      sum+=attr[i];//循环

  }

  alert(sum);//输出总分

 //最高分和最低分:



 var attr =[89,80,76,49,90,25,85,76,59,40];//10个成绩

 var zg = 0;//最高分赋值0

 var zd = 0;// 最低分赋值0

 for(var i=0; i<attr.length;i++) //循环条件

 {

      if(attr[i]>zg)//条件判断

      {

           zg = attr[i];// 赋值

      }

 }

 alert(zg);//输出最高分

 var zd = zg;//给最低分赋值

 for(var i=0; i<attr.length;i++)//循环条件

 {

       if(attr[i]<zd)//条件判断

       {

            zd = attr[i];//赋值

        }

 }

 alert(zd);//输出最低分

 

示例2:添加数据时去重       

var attr = [2,5,10,16,27];//5个元素的数组

var sj = 10;//输入新的元素

var cf = true;//波尔型数据,默认是true

for(var i=0;i<attr.length;i++)循环条件

{

    if(sj == attr[i])//判断数组里面有没有和新的元素相等的元素

{

    cf = false;//如果有重复值,把false赋值给cf

 break;//终止循环

}

}

if(cf)//if(cf=true)可以直接用,意思是如果没有重复值

{

    attr.push(sj);//在数组中加新的元素

}

else//如果有重复的元素

{

    alert("有重复值");//输出“有重复值”

    alert(attr.length);//输出数组的长度(索引的数量)。

}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值