javascript数组对象
一、属性
1.length
设置或者返回数组元素的数目。
var arr=[1,2,3,"a","b","c"];
document.write(arr.length);
document.write(" ");
document.write(arr.length=8);
document.write(" ");
document.write(arr.length);
document.write(" ");
document.write(arr);
输出 6 8 8 1,2,3,a,b,c,,
2.constructor
返回构造函数的引用
var arr=[1,2,3,"a","b","c"];
document.write(arr.constructor);
输出 function Array() { [native code] }
二、方法
A.删除或添加类
数组.push(数组元素...)
向数组的末尾添加新的元素,返回值是新数组的元素。可以一次添加多个元素。
var arr=[1,2,3,"a","b","c"];
document.write(arr.push(4,5));
document.write(" ");
document.write(arr);
输出 8 1,2,3,a,b,c,4,5
数组.unshift(数组元素...)
向数组的开头添加新的元素,返回值是新数组的长度。可以一次添加多个元素。
var arr=[1,2,3,"a","b","c"];
document.write(arr.unshift("a","b","c"));
document.write(" ");
document.write(arr);
输出 9 a,b,c,1,2,3,a,b,c
数组.pop(数组元素...)
删除数组的最后一个元素,返回删除的元素。
var arr=[1,2,3,"a","b","c"];
document.write(arr.pop());
document.write(" ");
document.write(arr);
输出 c 1,2,3,a,b
数组.shift(数组元素...)
删除数组的第一个元素,返回删除的元素。
var arr=[1,2,3,"a","b","c"];
document.write(arr.shift());
document.write(" ");
document.write(arr);
输出 1 2,3,a,b,c
数组.splice(index,数量)
index 从何处开始添加或删除,必须是数值类型(数组的下标)
数量 规定了删除的个数,如果是0,则不删除
需要添加的元素,可以当做替换的元素
如果有删除的元素则返回删除的元素
var arr=[1,2,3,"a","b","c"];
document.write(arr.splice(3,1));
document.write(" ");
document.write(arr);
输出 a 1,2,3,b,c
var arr=[1,2,3,"a","b","c"];
document.write(arr.splice(3,1,"e","f"));
document.write(" ");
document.write(arr);
输出 a 1,2,3,e,f,b,c
var arr=[1,2,3,"a","b","c"];
arr.splice(3,0,"e","f");
document.write(" ");
document.write(arr);
输出 1,2,3,e,f,a,b,c
B.数组的转换
数组.join(分隔符)
把数组元素按照指定的分隔符组合成一个字符串,如果指定没有分隔符,默认用逗号分隔。
返回结果是组合成的字符串
var arr=[1,2,3,"a","b","c"];
document.write(arr.join());
document.write(" ");
document.write(typeof arr.join());
document.write(" ");
document.write(arr.join("-"));
输出 1,2,3,a,b,c string 1-2-3-a-b-c
数组.slice()
截取从指定的开始位置,到结束位置(不包括结束位置)的元素。如果不指定结束位置,则从指定的开始位置取到结尾(数组的下标)
支持负数(-1开头)
返回新数组
var arr=[1,2,3,"a","b","c"];
document.write(arr.slice(2,4));
document.write(" ");
document.write(arr);
document.write("<br/>");
document.write(arr.slice(2));
document.write(" ");
document.write(arr);
document.write("<br/>");
document.write(arr.slice(-3,-1));
document.write(" ");
document.write(arr);
输出
3,a 1,2,3,a,b,c
3,a,b,c 1,2,3,a,b,c
a,b 1,2,3,a,b,c
C.排序
冒泡排序
var arr=[2,4,8,7,6,9];
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr.length-i;j++){
if(arr[j]>arr[j+1]){
var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
document.write(arr);
输出 2,4,6,7,8,9
var arr=[2,4,8,7,6,9];
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr.length-i;j++){
if(arr[j]<arr[j+1]){
var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
document.write(arr);
输出 9,8,7,6,4,2
var arr=[2,4,8,7,6,9];
function bubbleSort() {
for(var i=0;i<this.length;i++){
for(var j=0;j<this.length-i;j++){
if(this[j]>this[j+1]){
var temp=this[j];
this[j]=this[j+1];
this[j+1]=temp;
}
}
}
return this;
}
Array.prototype.bubbleSort=bubbleSort;
document.write(arr.bubbleSort());
输出 9,8,7,6,4,2
系统自带排序
数组.sort()
对数组进行排序,如果没有参数,则按照字母的编码进行排序。
如果要按照其他顺序来排序,要提供一个函数作为回调函数。
回调函数会提供两个参数(a,b)
a<b a在b前
a=b
a>b a在b后
var arr=["b","c","e","a","q"];
document.write(arr.sort());
document.write(" ");
document.write(arr);
输出 a,b,c,e,q a,b,c,e,q
var arr=["1","2","5","12","15"];
document.write(arr.sort());
document.write(" ");
arr.sort(function (a,b) {
return a-b;
});
document.write(arr);
输出 1,12,15,2,5 1,2,5,12,15
D.数组的连接
数组.concat()
连接连个或者更多的数组,并返回新数组,但是对原数组没有任何影响
var a=[2,4,6,8];
var b=["b","d","f","h"];
var c=[" love "];
document.write(a.concat(c,b));
document.write("<br/>");
document.write(a);
document.write("<br/>");
document.write(c.concat("G","Z"));
document.write("<br/>");
document.write(a);
输出
2,4,6,8, love ,b,d,f,h
2,4,6,8
love ,G,Z
2,4,6,8
网友评论