javaScript的数组对象用于存储一组相关联的变量。
1、定义数组:
在javascript中可以采用如下几种方式定义一个数组,
1.1 var array = new Array();此时定义一个长度为0的数组,在javascript中,数组的元素是可以动态扩展的,像这样的数组,依然可以采用如下方式赋值,而不会发生数组越界的错误 array[0] = 1, array[1] = 2...
1.2 var array = new Array(length);此时构造一个长度为length的数组,数组中的元素都是空元素,
1.3 var array = new Array([element0[, element1[, ...[, elementN]]]]); 创建一个数组并赋值.
1.4 var array = [1,2,3,4];
2、多维数组
javascript中数组元素可以是任意的类型,所以可以使用如下方式来模拟而未数组,
var array = [[1,2,3],[4,5,6]];
document.write(array[0][0]);//1
以此类推,根据个人的需要,可以扩展到N维。
3、数组常用属性
javascript 数组最常用的属性就是length了,它返回数组的长度,例如
var array = [1,2,3,4,5,6];
document.write(array.length);\\6
主要数组的length属性是可以修改的,当你把一个比数组实际长度小的值赋值给length的时候,length之后的元素会被截断,例如
var array = [1,2,3,4,5,6];
array.length = 2;
document.write(array)//1,2
当你把一个比length大的值赋值给length的时候,就会扩展数组,新的空元素会添加到数组末尾,例如
var array = [1,2,3,4,5,6];
array.length = 8;
document.write(array)//1,2,3,4,5,6,,
还有一个prototype 属性,允许你向数组中添加属性和方法,例如
Array.prototype.getFirst = function(){
return this[0];
}
var array = new Array(1,2,3,4);
document.write(array.getFirst());//1
数组还有一个constructor 属性,表示创建对象的函数。例如,
var array = new Array(1,2,3,4);
document.write(array.constructor)//function Array() { [native code] }
4、数组常用方法
4.1 concat()
concat() 方法用于连接两个或多个数组,返回连接好的新的数组,注意,该方法不会修改原数组。例如,
var array = new Array(1,2);
array.concat(3,4);
document.write(array);
此时输出内容仍然是1,2
var array = new Array(1,2);
array = array.concat(3,4);
document.write(array);
此时输出的内容才是1,2,3,4
4.2 join()
join() 方法用于把数组中的所有元素放入一个字符串,你可以指定一个分隔符做参数,如果不指定,那么将使用","作为分隔符,例如
var array = new Array(1,2,3,4);
document.write(array.join());//1,2,3,4
document.write(array.join("$"));//1$2$3$4
4.3 pop()
pop() 方法用于删除并返回数组的最后一个元素。并把数组的长度减1,如果数组已经为空,则不会把数组的长度减1,并且返回undefined,例如
var array = new Array(1,2,3,4);
document.write(array.pop());//4
document.wirte(array.length);//3
array.length = 0;//清空数组
document.write(array.pop());//undefined
4.4 push()
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。注意,它是在原数组上进行操作的,例如,
var array = new Array();
array.push(1,2,3,4);
document.write(array);//1,2,3,4
4.5 reverse()
reverse() 方法用于颠倒数组中元素的顺序,注意,这个方法也是对原数组进行操作的,例如
var array = new Array(1,2,3,4);
array.reverse();
document.write(array);//4,3,2,1
4.5 shift()
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。如果此时数组为空,那么和pop()方法一样,返回undefined,该方法也是在原数组上进行操作,例如
var array = new Array(1,2,3,4);
document.write(array.shift());//1
document.write(array.length);//3
array.length = 0;
document.write(array.shift())//undefined
4.6 unshift()
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度,主要该方法也是在原数组上进行的操作,例如
var array = new Array(1,2,3,4);
array.unshift(5,6,7,8);
document.write(array);//5,6,7,8,1,2,3,4
4.7 slice()
slice() 方法可从已有的数组中返回选定的元素。注意,该方法并不会修改数组,而是返回一个子数组,例如
var array= new Array(1,2,3,4);
array.slice(1,3);
document.write(array);输出还是1,2,3,4
var subArray = array.slice(1,3);
document.write(subArray);//此时输出的是2,3
4.8 splice()
splice() 方法用于插入、删除或替换数组的元素。注意,该方法是在原数组上进行的操作,例如
如果想删除数组中的元素,可以按如下方式进行,splice(index,howmany)
index指定从何处开始删除,howmany指定删除几个元素,例如,有个数组var array = new Array(1,2,3,4)我们想删除元素2 ,可以按如下方式进行
array.splice(1,1);
document.write("数组元素 :" + array + " ; 数组长度" + array.length);//数组元素 :1,3,4 ; 数组长度3
如果想在数组中插入元素,可以按如下方式进行,splice(index,howmany,element1,elementX),其中index,howmany同上,element1指的是规定要添加到数组的新元素,elementX指的是可向数组添加若干元素,例如我们想在array数组2的后面添加一个5
array.splice(2,0,5);//因为想在2后面添加,而2是数组中2个元素,下标是1,所以他后面的下标就是2,0表示我们不想删除任何元素,5,是我们要插入的值
document.write("数组元素 :" + array + " ; 数组长度" + array.length);//数组元素 :1,2,5,3,4 ; 数组长度5
如果我们想把2替换为5,可以使用如下方式,
array.splice(1,1,5);
document.write("数组元素 :" + array + " ; 数组长度" + array.length);
document.write(subArray);//数组元素 :1,5,3,4 ; 数组长度4
4.9 sort()
sort() 方法用于对数组的元素进行排序。注意 该方法在原数组上进行排序,不生成副本。例如
var array = new Array("b","a","d","c");
array.sort();
doucment.write(array);//a,b,c,d
注意,如果排序的数组是都是数字的话,sort方法需要一个排序函数,否则的话,排序结果可能就不是我们想要的结果,例如
var array = new Array(2,10,1,4);
array.sort();
document.write(array);//1,10,2,4
结果是1,10,2,4而不是1,2,4,10,这是因为默认的sort()按字符编码排序的,这是我们需要传递一个比较函数给sort,比较函数的逻辑是:如果两参数的差值小于0,则表示a必须出现在b前面,你也可以实现自己的比较函数,例如
var array = new Array(2,10,1,4);
array.sort(function(a,b){return a-b;});
document.write(array);//1,2,4,10
这就是我们想要的结果啦!