javascrip中array使用
一.测试数组长度是使用arr.length;(注:使用delete不会修改数组的length属性)
二.数组方法
1.join()
Array.join()方法将数组所有元素都转化为字符串连接在一起,返回生成的字符串。
var arr=[1,2,3]; //创建一个包含三个元素的数组 arr.join(); //=>1,2,3 arr.join(" "); //=>1 2 3 arr,join(""); //=>123 var line=new Array(10); line.join("-"); //=>----------
2.reverse()
Array.reverse()方法将数组元素颠倒顺序,返回逆序数组。
var arr=[1,2,3]; ///定义一个数组 a.reverse().join(); //=>3,2,1
3.sort()
Array.sort()方法将数组排序,返回排序后的数组。
var arr=new Array("banana","cherry","apple"); arr.sort().join(); //apple,banana,cherry;
如果数组包含undefined元素,他们被拍到数组的尾部。
如果要按照自己的要求进行排序可以给sort()方法传入一个比较函数,该函数决定两个参数在排好序的数组中的先后顺序。
传入比较函数,可以为一个匿名函数,此函数接受两个参数,如果要递增排序,前一个参数应该在前则返回小于0的数字,如果后一个参数应该在前,则返大于0的数字,如果两个数相等,则返回0。
var arr=[33,4,1111,222]; arr.sort(); //1111,222,33,4 arr.sort(funciton (a,b){ return a-b; //4,33,222,1111 }); arr.sort(function (a,b){ return b-a; //1111,222,33,4 })
4.concat()
Array.concat()方法创建并返回一个新数组,他的元素包括调用concat()的原始数组的元素和concat()的每个参数。如果这些参数中的任何一个自身是数组,则连接的数组的是数组的元素,而非数组本身。
var arr=[1,2,3]; arr.concat(4,5); //1,2,3,4,5; arr.concat([4,5]); //1,2,3,4,5; arr.concat([4,5],[6,7]); //1,2,3,4,5,6,7; arr,concat(4,[5,[6,7]]); //1,2,3,4,5,6,7;
5.slice()
Array.slice()方法返回指定数组的一个片段或子数组。他的两个参数分别指定了片段开始和结束位置。返回的数组包含第一个参数指定的位置和所有到但不包含第二个参数指定的位置之间的所有数组数据。如果参数为负数,则从数组最后面元素开始计算。
var arr=[1,2,3,4,5]; arr.slice(0,3); //[1,2,3]; arr.slice(3); //[4,5]; arr.slice(1,-1); //[2,3,4]; arr.slice(-3,-2); //[3];
6.splice()
Array.splice()方法方式在数组中插入或删除元素的通用方法。不同于slice()和concat(),splice()会修改调用的数组。插入或删除元素会根据需要增加或减小他们的索引值,其他部分仍然保持连续。
(1).第一个参数指定了插入或删除的起始位置,第二个参数指定了删除的元素的个数,如果省略第二个参数,则从起始位置到数组末尾都被删除。
var arr=[1,2,3,4,5,6,7,8]; arr.splice(4); //返回[5,6,7,8]; arr=[1,2,3,4]; arr.splice(1,2); //返回[2,3]; arr=[1,4]; arr.splice(1,1); //返回[4]; arr=[1];
(2).除了前两个参数指定了删除元素外,后面的参数指定了要插入的数组元素。
var arr=[1,2,3,4,5]; arr.splice(2,0,"a","b"); //返回[] arr=[1,2,"a","b",3,4,5]; arr.splice(2,2,[1,2],3); //返回["a","b"];arr=[1,2,[1,2],3,3,4,5];
7.push()和pop()
push()和pop()方法允许将数组作为堆栈使用,push()方法在数组的尾部添加一个或多个元素并返回新数组的长度,pop()则从堆栈顶取出数组元素;
var stack=[]; //stack[]; stack.push(1,2); //stack[1,2]; 返回2 stack.pop(); //stack[1]; 返回2 stack.push(3); //stack[1,3]; 返回2 stack.pop(); //stack[1]; 返回3 stack.push([4,5]); //stack[1,[4,5]]; 返回2 stack.pop(); //stack[1]; 返回[4,5]
8.unshift()和shift()
unshift()和shift()方法的行为与push()和pop()类似,不一样的是unshift()与shift()是从头部操作,而非尾部.
var arr=[]; arr.unshift(1); //arr:[1] ; 返回1 arr.unshift(2); //arr:[2,1]; 返回2 arr.shift(); //arr:[1]; 返回2 arr.unshift(3,[4,5]); //arr:[3,[3,5],1] 返回3 arr.shift(); //arr:[[3,5],1] 返回3 arr.shift(); //arr[1]; 返回[3,5]
9.toString()和toLocaleString()
toString()方法将数组转化为字符串,字符串之间用","分割,toLocaleString()是toString()的本地化使用本地的分隔符连接字符串。
[1,2,3].toString(); //生成'1,2,3'; ["a","b","c"].toString(); //生成"a,b,c"; [1,[2,3]].toString(); //生成‘1,2,3’