Array对象提供存储和处理一组其他对象的一种手段。数组可以存储数值、字符串或其他JavaScript对象。创建JavaScript数组有几种不同的方法。例如,下面的语句穿件同样的驻足的3个相同的版本:

  var arr = ["one","two","three"];

  var arr2 = new Array();

  arr2[0] = "one";

  arr2[1] = "two";

  arr2[2] = "three";

  arr3.push("one");

  arr3.push("two");

  arr3.push("three");

  第一种方法定义了arr,并使用[]在一条语句中设置它的内容。第二种方法创建arr2对象,然后使用直接索引赋值来增加条目。第三种方法创建arr3对象,然后使用扩展数组的最佳选择push()方法来把条目推到数组上。

  要确定数组中元素的个数,可以使用数组对象的length属性,如下面的例子所示:

  var numOfItems = arr.length;

  数组遵循一个从零开始的索引,这意味着第一项在索引0上,等等。例如,在下面的代码中,变量first的值是Monday,变量last的值将是Friday:

  var

  week = ["Mondy","Tuesday","Wednesday","Thursday","Friday"];

  var first = w [0];

  var last = week[week.length-1];

  数组对象有许多内置的函数,使你可以用不同的方式来访问和操作数组。下表描述了连接到Array对象,让你操作数组内容的方法。

用来操作Array对象的方法

方  法 说  明
concat(arr1,arr2,...) 返回一个数组和作为参数传递的数组的连接副本
indexOf(value) 返回数组中value的第一个索引。或如果没有找到该条目,返回-1
join(separator) 把一个数组中的所有元素连接为由separator分隔的单个字符串。如果没有指定分隔符,则使用逗号作为分隔符
lastIndexOf(value) 返回数组中value的最后一个索引。或如果没有找到该条目,返回-1
pop() 删除数组的最后一个元素,并返回该元素
push(item1,item2,...) 添加一个或多个新元素到数组的结尾,并返回数组的新长度
reverse() 反转数组中所有元素的顺序
shift() 删除数组的第一个元素,并返回该元素
slice(start,end) 返回start和end索引之间的元素
sort(sortFunction) 对数组的元素排序。sortFunction是可选的
splice(index,count,item1,item2...) 在index指定的索引处,删除count个条目,然后在index出插入作为参数传入的任意可选条目
toString() 返回一个数组的字符串形式
unshift() 将新元素添加到数组的开头,并返回新的长度
valueOf() 方法返回一个数组对象的原始值

  

  1、合并数组

  你可以用合并String对象的相同方式来合并数组:使用+语句或使用concat()方法。在下面的代码中,arr3最终和arr4是一样的:

    var arr1 = [1,2,3];

    var arr2 = ["one","two","three"];

    var arr3 = arr1 + arr2;

    var arr4 = arr1.concat(arr2);

  注意

  你可以将一个数字数组和一个字符串数组合并。数组中的每一项都将保持自己的对象类型。然而,当你使用数组中的条目时,需要对有多个数据类型的数组保持跟踪,这样你才不会陷入麻烦。

  2、遍历数组

  你可以使用for或for/in循环对数组进行遍历。下面的代码说明了使用每种方法再数组中遍历每个条目的写法:

  var week = ["Monday","Tuesday","Wednesday","Thursday","Friday"];

  for ( var i = 0; i<week.length; i++){

    console.log("<li>" + week[i] + "</li>");

  }

  for (dayIndex in week){

    console.log("<li>" + week[dayIndex] + "</li>");

  }

  3、将数组转换为字符串

  Array对象的一个非常有用的功能是,将一个数组的元素结合在一起,制造一个String对象,通过使用join()方法指定分隔符分隔。例如,下面的代码把时间组件重新连接成12:10:36的格式:

  var timeArr = [12,10,36]

  var timeStr = timeArr.join(":");

  4、检查数组是否包含某个条目

  你经常需要检查数组中是否包含某一个条目。可以使用indexOf()方法做到这一点。如果代码没有找到列表中的条目,则返回-1。如果一个条目在week数组中,下面的函数就把一条消息写到控制台:

  function message(day){

    var week = ["Monday","Tuesday","Wednesday","Thursday","Friday"];

    if (week.indexOf(day) != -1){

      console.log("Happy" + day);

    }

  }

  5、在数组中添加条目和删除条目

  使用各种内置的方法,有多种往Array对象添加条目,并从Array对象删除条目的方法。下表列出了一些在本书中使用的不同方法。

用来在数组添加或删除元素的Array对象方法,数组显示为从表开始到末尾的进度

语  句 x的值 arr的值
var arr = [1,2,3,4,5]; undefined 1,2,3,4,5
var x = 0; 0 1,2,3,4,5
x = arr.unshift("zero"); 6(长度) zero,1,2,3,4,5
x = arr.push(6,7,8); 9(长度) zero,1,2,3,4,5,6,7,8
x = arr.shift(); zero 1,2,3,4,5,6,7,8
x = arr.pop() 8 1,2,3,4,5,6,7
x = arr.splice(3,3,"four","five","six"); 4,5,6 1,2,3,four,five,six,7
x = arr.splice(3,1); four 1,2,3,five,six,7
x = arr.splice(3); five,six,7 1,2,3

JavaScript基础——使用数组的更多相关文章

  1. JavaScript 基础回顾——数组

    JavaScript是无类型语言,数组元素可以具有任意的数据类型,同一个数组的不同元素可以具有不同类型.数组的元素设置可以包含其他数组,便于模拟创建多维数组. 1.创建数组 在JavaScript中, ...

  2. javascript基础知识-数组

    1.javascript创建数组时无需声明数组大小或者在数组大小变化时重新分配 2.javascript数组是无类型的 3.数组元素不一定要连续 4.针对稀疏数组,length比所有元素的索引都要大 ...

  3. JavaScript 基础(二)数组

    字符串, JavaScript 字符串就是用'' 和""括起来的字符表示. 字符字面量, \n 换行, \t 制表, \b 退格, \r 回车, \f 进纸, \\ 斜杠,\' 单 ...

  4. JavaScript基础之数组常用方法

    目录 JS 数组常用API 常用属性 常用方法 常见方法语法解释 from方法 isArray concat every fill filter find forEach indexOf join k ...

  5. javascript基础之数组一

    <script type="text/javascript"> //求数组中最大的数 var arr=[123,456,789,657,432,564]; var ar ...

  6. javascript基础之数组对象

    一.定义数组的方法: 定义了一个空数组: var myArray =new Array(); 指定有n个空元素的数组: var myArray=new Array(n); 定义数组并赋值: var m ...

  7. JavaScript 基础(六) 数组方法 闭包

    在一个对象中绑定函数,称为这个对象的方法.在JavaScript 中,对象的定义是这样的: var guagua = { name:'瓜瓜', birth:1990 }; 但是,如果我们给瓜瓜绑定一个 ...

  8. JavaScript基础04——数组的创建及方法

    数组的概念及定义 数组的概念:         一组数据,数据的组和         哪些数据的组和,只要是数据(所有数据),就可以放在数组中 数组的意义:         可以同时操作多个数据 数组 ...

  9. javascript基础系列(入门前须知)

    -----------------------小历史---------------------------- javascript与java是两种语言,他们的创作公司不同,JavaScript当时是借 ...

随机推荐

  1. 如何根据屏幕大小改变class的css样式

    /*当屏幕小于1200px*/ @media (max-width:1200px) { ...} 此处针对所有小于1200px屏幕的css属性. /*当屏幕小于1200px且大于992px*/ @me ...

  2. [BZOJ1056][BZOJ1862][HAOI2008][Zjoi2006]排名系统

    [BZOJ1056][BZOJ1862][HAOI2008][Zjoi2006]排名系统 试题描述 排名系统通常要应付三种请求:上传一条新的得分记录.查询某个玩家的当前排名以及返回某个区段内的排名记录 ...

  3. qt-5.6.0 移植之实现板子与ubuntu主机通过网络进行文件传输

    经过一上午的调试以及同事的帮助,终于实现板子与主机的文件传输. 第一步关闭所有的防火墙 在 Windows 里面是在控制面板->安全->Windows 防火墙->自定义设置 在ubu ...

  4. 单臂路由与三层交换机实现VLAN通信

    不同VLAN之间相互通信的两种方式 (单臂路由.三层交换) 试验环境:东郊二楼第三机房 试验设备:Catalyst 2950-24(SW3)                   Cisco 2611( ...

  5. UOJ 做题记录

    UOJ 做题记录 其实我这么弱> >根本不会做题呢> > #21. [UR #1]缩进优化 其实想想还是一道非常丝播的题目呢> > 直接对于每个缩进长度统计一遍就好 ...

  6. 谷歌Chrome浏览器开发者工具的基础功能

    上一篇我们学习了谷歌Chrome浏览器开发者工具的基础功能,下面介绍的是Chrome开发工具中最有用的面板Sources.Sources面板几乎是最常用到的Chrome功能面板,也是解决一般问题的主要 ...

  7. Postman

    Postman功能(https://www.getpostman.com/features) 主要用于模拟网络请求包 快速创建请求 回放.管理请求 快速设置网络代理 安装 下载地址:https://w ...

  8. [转]Tomcat----Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

    对于使用IDE开发的程序员来讲,并不是所有人都对自己用来吃饭的工具了如指掌.常在阴沟跑,哪能不翻船.为此我把自己使用Tomcat/Eclipse的一些经验教训整理了一下,会陆续的贴出来,也许会帮到和我 ...

  9. python操作Excel文件

    参考: http://www.cnblogs.com/tianyajuanke/p/4048844.html http://blog.chinaunix.net/uid-24701781-id-334 ...

  10. PyCharm 4.0.6 注册码

    Professional Edition版本比Free版本多了很多东西,比如 Web development,Django等等,重新下了Professional版本,虽然是只30天免费,但是到时候重装 ...