数组

一、定义

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);//输出数组的长度(索引的数量)。
}

JS 数组的基础知识的更多相关文章

  1. PHP基础入门(四)---PHP数组实用基础知识

    PHP数组 数组是特殊的变量,它可以同时保存一个以上的值. ***关键词:数组基础.数组遍历.超全局数组.数组功能.数组函数. 下面来和大家分享一下有关PHP的数组基础知识,希望对你PHP的学习有所帮 ...

  2. three.js学习笔记--基础知识

    基础知识 从去年开始就在计划中的three.js终于开始了 历史介绍 (摘自ijunfan1994的转载,感谢作者) OpenGL大概许多人都有所耳闻,它是最常用的跨平台图形库. WebGL是基于Op ...

  3. JavaScript中数组的基础知识和相关方法

      数组基础 数组是大多数语言里面最常见的一种数据结构,它是一个有序的值列表. 创建数组 1.创建字面量数组 let arr=[]; 2.创建构造函数数组 let arr=new Array(); 注 ...

  4. JS原型函数相关基础知识

    函数对象和普通对象 //普通对象 var oo1 = {}, oo2 = new Object(), oo3 = []; console.log(typeof oo1 + ',' + typeof o ...

  5. 云笔记项目-补充JS面向对象编程基础知识

    简单介绍: 此部分知识为在做云笔记项目中补充,因为云笔记项目中涉及到前端js,里面写了很多js脚本,用到了创建js属性和方法,在js中直接声明的属性和方法最终都会变成window的对象,即其成为了全局 ...

  6. js与juery基础知识对比(一)---2017-05-06

    用表格做的,想要对比的内容一目了然,红色部分为重点   js jquery 取元素 id: document.getElementById("aa"); 取到的是dom对象 cla ...

  7. js与jquery基础知识对比(一)---2017-05-06

    用表格做的,想要对比的内容一目了然,红色部分为重点   js jquery 取元素 id: document.getElementById("aa"); 取到的是dom对象 cla ...

  8. Java学习——数组的基础知识

    数组的特点.分类:一维.二维数组的使用:数组的声明和初始化.调用数组的指定位置的元素.获取数组的长度.遍历数组.数组元素的默认初始化值

  9. PHP数组的基础知识

随机推荐

  1. spring(spring boot)笔记

    1.查看数据库连接:org.springframework.boot.autoconfigure.jdbc里的public DataSource dataSource() 方法.在这里打断点,可以查看 ...

  2. mysql忘记root密码拯救方法(flush privileges)

    修改的用户都以root为列.一.拥有原来的myql的root的密码: 方法一:在mysql系统外,使用mysqladmin# mysqladmin -u root -p password " ...

  3. UltraEdit20 注册

    UltraEdit v20下载与注册机 UltraEdit是一套功能强大的文本编辑器,可以编辑文本.十六进制.ASCII 码.HTML.PHP.Perl.Java 和 JavaScript等众多流行计 ...

  4. [.NET 4.5] ADO.NET / ASP.NET 使用 Async 和 Await 异步 存取数据库

    此为文章备份,原文出处(我的网站)  [.NET 4.5] ADO.NET / ASP.NET 使用 Async 和 Await 异步 存取数据库 http://www.dotblogs.com.tw ...

  5. iOS反射机制

    iOS属性反射:说白了,就是将两个对象的所有属性,用动态的方式取出来,并根据属性名,自动绑值.(注意:对象的类,如果是派生类,就得靠其他方式来实现了,因为得到不该基类的属性.) 本人常用的反射方式,有 ...

  6. 解决ubuntu15 下没有声音

    个人经验,个人适用. 今天想在网上在线听一首歌,结果没有声音.好气啊,于是百度,google,发现好像这个问题很常见.于是按着来,什么alsamixer还有更改什么audio权限的,但在我这都没用. ...

  7. Python核心编程--学习笔记--3--Python基础

    本章介绍基本的Python语法.编程风格:并简要介绍标识符.变量和关键字,以及变量占用内存的分配和回收:最后给出一个较大的Python样例程序来体验这些特性. 1 语句和语法 1.1 注释 可以在一行 ...

  8. python批量导出导入MySQL用户的方法

    这篇文章主要介绍了 数据库迁移(A -> B),需要把用户也迁移过去,而用户表(mysql.user)有上百个用户.有2种方法进行快速迁移: 1,在同版本的条件下,直接备份A服务器的mysql数 ...

  9. R语言将数据框转成xts

    R语言初学者,不怎么会,今天碰到的问题,查了好久才找到,原来如此简单 尼玛,下次再忘记抽自己3巴掌

  10. 6.24 AppCan移动开发者大会,我爱我家即将闪亮登场!

    6.24 AppCan移动开发者大会进入倒计时,报名通道即将关闭! “6月24日, 2016AppCan移动开发者大会即将召开,以“平台之上,应用无限”为主题,1500位行业精英汇聚在此,重磅新品发布 ...