除Object以外,Array也是比较常用的一种引用类型。并且其数组的每一项都可以为任意数据类型。
创建数组
- 使用array构造函数创建(其中new可以省略)
var arr = new Array(); //如果知道数组要保存项目的数量还可以写成 var arr1 = new Array(15); //consoloe.log(arr1.length) // 15 也可以吧保存的项直接传递 var arr2 = new Array("a","b","c","d") - 使用数组字面量来创建数组
var arr0 = ["a","b","c"] //arr.length为3 var arr1 = ["a","b",] //!!!!这样会出现2个或3个数组,出现确定性 var arr2 =[] //空数组
数组相关方法
1.数组检测和数字转换
判断某个对象是不是数组时,Array.isArray()方法来判断。
所有对象都具有valueOf()方法,toString()方法和toLocalString()方法
var name = ["zs","ls","ww","zl"]
alert(name.toString()); //zs,ls.ww.zl
alert(name.valueOf()); //zs,ls.ww.zl
alert); polopklpololoooo--=-//zs,ls.ww.zl
//最后一行代码直接将数组传递给alert,由于它只接受字符串,所以会调用toString()方法, 调用toLocalString()方法时,同样会创建一个数组值的以逗号分割的字符串。但是不同之处在于,取得每一项的toLocalString()的方法,而不是toString()方法。2.数组栈方法
栈数据结构的访问规则是一种后进先出(最新添加的最早被移除) push(推入)pop(移除)使用方法如下:
var arrname = ["zs"]
arrname[2] = {"ls"}
arrname.push{"ww"}; //添加一项
// alert(arrname) //zs,ls,ww
var val = arrname.pop();//取得最后一项
alert(val) //ww3.数组队列方法
队列数据结构访问规则是先进先出( 队列末端天天,在队列的首项移出 ) push(推入)shift(移除)
var arrname = ["zs"]
arrname[2] = {"ls"}
arrname.push{"ww"}; //添加一项
// alert(arrname) //zs,ls,ww
var val = arrname.shift();//取得第一项一项
alert(val) //zs与shift相对的是unshift()方法 是在队列的首项之前添加,用unshift()方法和push()方法相结合就能在队列的两端添加数据。
4.重排序方法
reserve()方法就是将数组的前后顺序完全改变(进攻变撤退?后队变前队)
var arr = Array[1,2,3,4]
var arr0 = arr.reserve(); arr0 //[4,3,2,1]sort()方法就是将数组的每一项调用toString()方法后,再对每一项字符串进行比较,比较的是字符串而并非数字。
var arr = Array[0,5,10,15]
arr.sort(); //0,10,15,5
字符串"10"在字符串"5"的前面这种排序在很多情况下不适用,因此sort()放法可以接收一个比较函数作为参数。
5.数组的操作方法
concat() 方法用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
var number = ["1","2","3"]
var number1 = number.concat("4",["5"])
alert(number)//1,2,3
alert(number1)//1,2,3,4,5slice() 方法可从已有的数组中返回选定的元素。array.slice(start,end)
var numnber2 = number1.slice(1,4);
alert(number2);//2,3,4,5splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
语法:array.splice(index,howmany,item1..itemx)
index就是从某一项开始操作;当该值为负则从结尾项规定位置。
howmany,从index项开始删除多少项,该值为0时 为不删除
item的内容就是添加的内容。
alert(number1.splice(1,2,"8","9","7"))//从二项开始删除两项,并添加三项。
//1,4,5,8,9,7
alert(number1.splice(2,0,"8"))//从第三项开始加入一项
//1,2,3,4,5,86.位置方法
位置方法indexOf()和lastIndexOf()都接受两个参数(item,start)或者(item)
item:要查找的项。
start:查找起点对应的索引。
lastIndexOf():查找的项最后一次出现的位置。indexOf():查找的项第一次出现的位置。
var number = array[1,2,3,4,5,4,3,2,1]
number.indesxOf(4) //3从开始查找第一次出现4这个项的索引值
number.lastIndexOf(4); //5从末尾开始查找最后一次出现的4这个项的索引值
number.indexOf(4,4) //5 从第五项开始查找 4的索引是5
number.lastIndexOf(4,4) //3 从第四个位置查找4的位置 start的位置是从0开始