1、属性
a.length--设置或返回数组元素的数目
var a=[1,2,3,45,5];
alert(a.length=6) 结果:6
alert(a[5]) 结果:undefined
b.constructor--返回构造函数的引用
var test=new Array();
alert(test.constructor==Array); true
2、方法
a.删除或添加类
1.push()--向数组的末尾添加一个或更多元素,并返回新的长度
var a=[1,2,3,4,5];
alert(a.push('a','b')); 结果:7
alert(a); 结果:1,2,3,4,5,a,
2.unshift()--向数组的开头添加一个或更多元素,并返回新的长度
var a=[1,2,3,4,5];
alert(a.unshift('a','b')); 结果:7
alert(a); 结果:a,b,1,2,3,4,5
3.pop()--删除数组的最后一个元素,返回删除的元素
var a=[1,2,3,4,5];
alert(a.pop()); 结果:5
alert(a); 结果:1,2,3,4
4.shift()--删除数组的第一个元素,返回删除的元素
var a=[1,2,3,4,5];
alert(a.pop()); 结果:1
alert(a); 结果:2,3,4,5
5.splice(index,num,item1,.....itemX)--删除元素,并向数组添加新元素
index 必需。从何处开始添加或删除,必须是数值类型(数组的下标)
num 必需。规定了删除的个数,如果是0,则不删除
item 可选。需要添加的元素,可以当作替换的元素
如果有删除的元素,返回删除的元素;如果没有删除的元素,返回为空,添加的元素在index值前面
var a=[1,2,3,4,5];
alert(a.splice(0,1,'a','b')); 结果:1
alert(a); 结果:a,b,2,3,4,5
b.数组的转换
join(separator)--将数组分割成字符串
separator可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符,返回结果就是组合成的字符串
var a=[1,2,3,4,5];
alert(a.join('-')); 结果:1-2-3-4-5
c.数组的分割
slice(start,end)--从某个已有的数组返回选定的元素
start:必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end:可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
var a=[1,2,3,4,5];
alert(a.slice(1,4)); 结果:2,3,4
alert(a.slice(-4,-1)); 结果:2,3,4
alert(a.slice(-2)); 结果:4,5
不包括,end值的元素
d.排序(冒泡排序)
sort(sortby) 对数组的元素进行排序
sortby:可选。规定排序顺序。必须是函数。如果没有参数,则按照字母的编码进行排序.
sortby会提供两个参数(a,b)
a<b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值
a=b,则返回 0。
a>b,则返回一个大于 0 的值
var a=[1,2,3,22,5];
alert(a.sort()); 结果:1,2,22,3,5
alert(a.sort(function(a,b){return b-a})); 结果:22,5,3,2,1
alert(a.sort(function(a,b){return a-b})); 结果:1,2,3,5,22
f.数组的连接
concat()--连接两个或更多的数组,并返回结果,对原数组没有任何影响
var a=[1,2,3,22,5];
var b=['a','b','c'];
alert(a.concat(b)); 结果:1,2,3,22,5,a,b,c
代码实践:
----------------冒泡排序--------------
var a=[34,13,8,22,5];
function arrsort(){
for(var i=0;i<=this.length;i++){
for(var j=0;j<=this.length-1;j++){
var aa=this[j];
if(this[j]<this[j+1]){
this[j]=this[j+1];
this[j+1]=aa;
}
}
}
return this;
}
Array.prototype.arrSort=arrsort;
alert(a.arrSort()); 结果:34,22,13,8,5
-----------------删除数组的重复元素--------------
var a=[34,13,22,22,5,'aa','aa'];
function arrsort(){
for(var i=0;i<=this.length;i++){
for(var j=0;j<=this.length-1;j++){
if(this[j]===this[j+1]){
this.splice(j,1);
}
}
}
return this;
}
Array.prototype.arrSort=arrsort;
alert(a.arrSort()); 结果:34,13,22,5,aa