JavaScript基础——使用数组

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

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

  var arr2 = new Array();函数

 

  arr2[0] = "one";spa

  arr2[1] = "two";对象

  arr2[2] = "three";排序

 

  arr3.push("one");索引

  arr3.push("two");three

  arr3.push("three");ip

  第一种方法定义了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() 方法返回一个数组对象的原始值

  

  一、合并数组

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

    var arr1 = [1,2,3];

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

    var arr3 = arr1 + arr2;

    var arr4 = arr1.concat(arr2);

  注意

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

 

  二、遍历数组

  你能够使用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>");

  }

 

  三、将数组转换为字符串

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

  var timeArr = [12,10,36]

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

 

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

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

  function message(day){

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

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

      console.log("Happy" + day);

    }

  }

 

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

  使用各类内置的方法,有多种往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
相关文章
相关标签/搜索