有关数组的相关知识~~
首先需要先简单了解下什么是数组~
1、什么是数组?
数组就是一组数据的集合,其表现形式就是内存中的一段连续的内存地址,数组名称其实就是连续内存地址的首地址。说白了它就是将一堆数据按照一定的顺序将他们连续存放在一个空间中。
2、数组的特点
数组定义时无需指定数据类型,数组定义时可以无需指定数组长度,数组可以存储不同数据类型的数据(String,Number等等)
3、创建数组的语法
var arr=[值1,值2,值3]; //隐式创建
var arr=new Array(值1,值2,值3); //直接实例化一个数组
var array=new Array(size); //创建数组并指定长度
//方法一:隐式创建 var arr = [1,2,3]; document.write(arr[2]+"<br />");
//方法二:实例化数组 var arr2 = new Array(2,4,6,8,10); document.write(arr2[3] + '<br>');
//方法三:创建数组并指定长度 var arr3 = new Array(3);//固定数组长度为3 arr3[0] = 1; arr3[1] = 2; arr3[2] = 3; document.write(arr3[2] + '<br>');
4、数组的长度(length)
Array.length
在javascript中,每个数组都可用调用length属性,它用来表示数组的长度。
var arr = [1,2,3]; //这里的arr[2]表示,在arr数组中寻找下标为2的值,输出3,因为下标从0开始 document.write(arr[2]+"<br />");
5、数组中的文本下标
语法:
var arr = [1,2,3]; arr['hahaha']='哈哈哈'; arr['hehehe']='呵呵呵'; document.write(arr.length+"<br />"); //这里输出的结果会是3,而不5 document.write(arr.hxw +"<br/>") //通过arr.它的属性来获取它的值 document.write(arr.chr +"<br/>")
注意:这里文本下标的值并不计算在数组的长度以内。
6、Array对象的方法
(1)、concat():连接两个或更多的数组,并返回结果。简单来说,就是将多个数组的元素相连接在一起,该方法不会改变现有的数组,只是返回一被连接数组的一个副本。
/*数组合并方法一:将两个或多个数组合并*/ var arr = new Array(); arr[0] = "可是" arr[1] = "然而" arr[2] = "但是" arr[3] = "不过" var arr2 = new Array(); arr2[0] = "还有" arr2[1] = "你猜" arr2[2] = "不睬" arr2[3] = "嗯哼" document.write(arr.concat(arr2));
//数组合并方法二:将新元素合并在原有的数组中 var i = [1,2,3,4,5,6] document.write(i.concat(99,88)+"<br />");
(2)、join():把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
//将数组中的值转换成字符串 var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas"
document.write(arr.join())
//使用.分隔符分隔数组中的元素 var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr.join("."))
(3)、pop():删除并返回数组的最后一个元素。删除数组的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。
/*删除数组末尾参数方法 pop()*/ document.write("pop()删除数组末尾参数,数组长度减1"+"<br />") var i = [1,2,3,4,5,1231] document.write(i.length+"<br />"); //此时数组长度为6 document.write(i.pop()+"<br />"); //删除并显示数组末尾的值,同时数组长度减1 document.write(i.length+"<br /><br /><br />")//此时数组长度为5
(4)、push():向数组的末尾添加一个或更多元素,并返回新的长度。
//通过push()方法向末尾添加一条数据,数组长度加1 document.write("push()向末尾添加一条数据,数组长度加1"+"<br />") var i = [1,2,3,4,5,1231] document.write(i.length+"<br />"); document.write(i.push(12,31)+"<br />"); //向末尾添加一个元素,不显示添加的值,但返回数组长度 document.write(i+"<br /><br /><br />");
(5)、reverse():颠倒数组中元素的顺序。
//reverse()方法用来将数组中的值反向输出 document.write("reverse()反向输出数组值") var i = [1,2,3,4,5,1231] document.write(i.reverse()+"<br /><br /><br />");
(6)、shift:删除并返回数组的第一个元素。如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。
/*shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。它会改变数组长度*/ document.write("shift()方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。"+"<br />"); var i = [1,2,3,4,5,1231] document.write(i.shift()+"<br /><br /><br />");
(7)、slice():从某个已有的数组返回选定的元素,该方法并不会修改数组,而是返回一个子数组。下面做一个小例子:
/*slice方法 * slice(start,end) start规定从何处开始,end表示何处结束,但是不包括end该元素 * 用来在已知的数组中返回选中的元素,该方法不会改变原有的数组,而是返回一个子数组, * 同时可以写入负值,从末尾取值 * */ var i = [1,2,3,4,5,1231] document.write(i.slice(2,4)+"<br /><br /><br />"); //返回结果为3,4
(8)、sort():对数组的元素进行排序。
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。
var i = [11,1,311,4,5] var j = ["e","g","q","a","b","d"] function sortNumber(a,b){ return a-b; } document.write(j.sort()+"<br />"); //默认按照字符串的ASCIII码表排序 document.write(i.sort(sortNumber)+"<br /><br /><br />"); //数值型比较大小需要给它写一个排序函数,
(9)、splice():删除元素,并向数组添加新元素。向/从数组中添加/删除项目,然后返回被删除的项目。该方法会改变原始数组。下面我们做一个小例子:
var i = [11,1,311,4,5]; document.write(i+"<br />"); //显示i中的所有元素 document.write(i.splice(0,3)+"<br />"); //此时显示它已经删除的元素 document.write(i+"<br /><br /><br /><br />"); //显示它删除后i中所剩的元素
(10)、toSource():返回该对象的源代码。只有 Gecko 核心的浏览器(比如 Firefox)支持该方法,也就是说 IE、Safari、Chrome、Opera 等浏览器均不支持该方法。
function employee(name,job,born){ this.name=name; this.job=job; this.born=born; } var bill=new employee("Bill Gates","Engineer",1985); document.write(bill.toSource());
(11)、toString() :方法可把数组转换为字符串,并返回结果。返回值与没有参数的 join() 方法返回的字符串相同。
var arr = new Array(3) arr[0] = "麦卡斯考菲的" arr[1] = "老白" arr[2] = "小粉" document.write(arr.toString())
(12)、toLocaleString():把数组转换为本地字符串。
var arr = new Array(3) arr[0] = "T-bag" arr[1] = "沙克" arr[2] = "考辛斯" document.write(arr.toString())
(13)、unshift():向数组的开头添加一个或更多元素,并返回新的长度。unshift() 方法将把它的参数插入数组的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推。请注意,unshift() 方法不创建新的创建,而是直接修改原有的数组。
下面我们做一个小例子:
var arr = new Array() arr[0] = "T-bag" arr[1] = "沙克" arr[2] = "考辛斯" document.write(arr + "<br />") //在这里使用unshift()方法添加一个新的人物 document.write(arr.unshift("莫兰") + "<br />") document.write(arr)