Array
2012-04-18 14:08 呦菜 阅读(334) 评论(0) 编辑 收藏 举报数组(array)是一个有序的、值的集合。
创建一个数组的最简单方法就是使用数组直接量。例如:
var empty = []; //没有元素的数组 var array1 = [1,2,3,5]; //4个元素的数组 var arry2 = [1.1,true,"a"]; var base = 1; var arry3 = [base,base+1,base+2];
创建数组的另一种方法是使用Array()构造函数。
1.无参数调用:
var a = new Array();
用这个方法创建的是一个没有元素的空数组,和数组直接量[]相等
2.可以显示的指定数组前n个元素的值:
var a = new Array(1,2,3,4,"testing");
3.只传递一个参数,这个数字指定了数组的长度:
var a = new Array(4);
采用这一种方法创建的数组具有指定的元素个数,每个元素的值都是undefined。
数组的下标必须是大于等于0并小于2^32-1的整数,如果使用的数字太大或者使用了负数、浮点数等,Javascript会将它转换成一个字符串,用生成的字符串做对象属性的名字,而不是数组的小标。
属性:
length
方法:
concat() 给数组添加元素
摘要:array.concat(value1,value2,...)
描述:方法concat()将创建并返回一个新数组。它并不修改array。如果要进行concat()的参数是一个数组,那么添加的是数组中得元素,而不是数组。
例子:
var a = [1,2,3]; console.log(a.concat(4,5)); //[1,2,3,4,5] console.log(a); //[1,2,3] console.log(a.concat([4,5])); //[1,2,3,4,5] console.log(a.concat([4,5],[6,7])); //[1,2,3,4,5,6,7] console.log(a.concat(4,[5,[6,7]])); //[1,2,3,4,5,[6,7]]
join() 将数组中所有的元素都转成字符串,然后连接起来
摘要:
array.join()
array.join(separator)
返回值:一个字符串,用separator链接每个元素的字符串而成
例子:
var a = [1,2,3,"testing"]; console.log(a.join()); //1,2,3,testing console.log(a.join(" ")); //1 2 3 testing console.log(a.join("+")); //1+2+3+testing
pop() 删除并返回数组的最后一个元素
摘要:array.pop()
返回值:array的最后一个元素
描述:方法pop()将删除array的最后一个元素,把数组长度减1,并且返回它删除的元素的值。如果数组已经为空,则pop()不改变数组,返回undefined值
例子:
var a = [1,2,3]; console.log(a.pop()); //3 console.log(a); //[1,2] console.log(a.pop()); //2 console.log(a.pop()); //1 console.log(a.pop()); //undefined
push() 把一个项目添加到数组的尾部
摘要:array.push(value,...)
返回值:把指定的值添加到数组后的新长度
描述:方法push()将把它的参数顺次添加到array的尾部。它直接修改array,而不是创建一个新数组。方法push()和方法pop()用数组提供先进后出栈的功能
例子:
var a = [1,2,3]; console.log(a.push(1,2,"test")); //6 console.log(a); //[1,2,3,1,2,"test"]
reverse() 点到数组中的元素顺序
摘要:array.reverse()
描述使用reverse()方法可以颠倒数组中的元素顺序,但并不创建新数组
例子:
var a = [1,2,4,5,7,43]; a.reverse(); console.log(a); // [43,7,5,4,2,1]
shift() 将数组头部的元素移出数组
摘要:array.shift()
返回值:数组原来的第一个元素
描述:方法shift()将array的第一个元素移出数组,返回那个元素的值,并且将余下的所有元素前移一位。如果数组是空的,shift将不进行任何操作,返回undefined值。该方法不创建新数组。
例子:
var a = [1,2,4,5,7,43]; a.shift(); console.log(a); // [2, 4, 5, 7, 43]
slice() 返回数组的一部分元素
摘要:array.slice(start,end)
参数:
start:数组片段开始处的数组下标。如果是负数,它表示从数组尾部开始的位置,即-1是指最后一个元素。
end:数组片段结束处的后一个元素的数组下标。如果没有指定这个参数,切分的数组包含从start开始到数组结束的所有元素。
返回值:一个新的数组,包含从start到end(不包括该元素)指定的array元素
描述:。。。注意:该方法并不修改数组。如果想删除数组中得一段元素,应该是用方法array.aplice()
例子:
var a = [1,2,4,5,7,43]; console.log(a.slice(0,3)); // [1,2,4] console.log(a); // [1, 2, 4, 5, 7, 43],不修改a数组 console.log(a.slice(3)); // [5, 7, 43] console.log(a.slice(-3,-1)); // [5, 7] console.log(a.slice(1,-2)); // [2, 4, 5]
sort() 对数组元素进行排序
摘要:
array.sort()
array.sort(orderfunc)
参数:
orderfunc: 用来指定按什么顺序排列的函数,可选
返回值:对数组的引用。注意:数组在原数组上进行排序,不制作副本。
描述:
如果调用sort()时没有使用参数,按照字母顺序(字符编码的顺序)对数组中得元素进行排序。
如果需要其他的排序方式,就必须提供比较函数,该函数确定他的两个参数哪个在前哪个在后。
如果第一个参数应该在第二个参数之前,那么比较函数返回一个小于0的值
如果第一个参数应该在第二个参数之后,那么比较函数返回一个大于0的值
如果两个参数相等,那么比较函数将返回0.
注意:如果函数含有未定义的元素,这些元素将被放在数组的末尾
例子:
//无参数 var array1 = [1,4,2,5,"banana","apple"]; array1.sort(); console.log(array1); // [1, 2, 4, 5, "apple", "banana"] //有参数 //升序 var dec = function(a,b){return a-b;}; //降序 var asc = function(a,b){return b-a;} var array2 = [1,4,5,2,8]; array2.sort(dec); console.log(array2); // [1, 2, 4, 5, 8] array2.sort(asc); console.log(array2); // [8, 5, 4, 2, 1] /* 将数组元素中的奇数放在偶数后面 */ var setOddBehindEven = function(a,b){ if(a%2==0 && b%2==1) { return 1; } else { return -1; } }; var b = [1,2,3,4,5,6,7,8,9]; b.sort(setOddBehindEven ); console.log(b); // [1, 3, 5, 7, 9, 2, 4, 6, 8]
splice() 插入、删除或替换数组元素
摘要:array.splice(start, deleteCount, value,...)
参数:
start: 开始插入或删除的数组元素的下标
deleteCount: 从start开始,包括start所指元素在内要删除的元素个数,如果没有该参数将删除从start开始到原数组结尾的所有元素
value,... : 要插入数组的值,从start所值的下标处开始插入。
返回值:如果从array中删除了元素,返回的是含有被删除元素的数组
例子:
var a = [1,2,3,4,5,6,7,8]; a.splice(4); //返回[5,6,7,8]; a的值是[1,2,3,4] a.splice(1,2); //返回[2,3]; a的值是[1,4] a.splice(1,0,2,3); //返回[]; a的值是[1, 2, 3, 4] var b = [1,2,3,4,5,6]; b.splice(1,2,"test","apple"); //返回[2,3]; b的值[1, "test", "apple", 4, 5, 6]
toLocaleString() 把数组转换成局部字符串
摘要: array.toLocaleString()
返回值:数组array的局部字符串表示
抛出:
TypeError 调用该方法时,若对象不是array,则抛出该异常。
描述:数组的toLocaleString()方法将返回数组的局部字符串表示。它首先调用每个元素的toLocaleString()方法,然后使用地区特定的分隔符把生成的字符串连接起来
toString() 将数组转换成一个字符串
摘要: array.toString()
返回值:array的字符串表示
抛出:
TypeError 调用该方法时,若对象不是Array,则抛出该异常
描述:数组的toString()方法把一个数组转换成字符串,首先把数组的每个元素转换成字符串并且返回这个字符串,字符串之间以逗号分隔。
例子:
var a = [1,2,"test",[5,"apple"]]; a.toString(); //返回 1,2,test,5,apple
unshift() 在数组头部插入元素
摘要: array.unshift(value,...)
参数:
value: 要插入数组头部的一个或多个值
返回值:数组的新长度
例子:
var a = [1,2]; a.unshift(3,4); //返回 4; a是 [3,4,1,2] a.unshift([5,6]); //返回 5; a是[[5,6],3,4,1,2]