Array类型
创建数组方式:
1. 使用Array构造函数: var colors = new Array();
var colors = new Array(20); //20表示给构造函数传递的数量,可以创建20个包含项每一项的初始值都是undefined
2. 使用数组字面量: var colors = ['red', 'yellow', 'green'];
设置数组的length,可以从数组的末尾移除项或向数组添加项。
数组的方法:
1.push() 从数组末尾推入项,并返回数组的长度 var num = ['1' , '2' , '3'] var count = num.push('4' ,'5'); ------------> count:5
2.pop() 从数组末尾移除最后一项,减少数组长度,并返回该项 var num = ['1' , '2' , '3'] var item=num.pop(); -------------------> item: 3
3.shift() 移除数组中的第一个项,并返回该项 var num = ['1' , '2' , '3']; var item= num.shift();-------------> item:1
4.unshift() 在数组前端添加任意个项,并返回数组长度 var num = ['1' , '2' , '3']; var count = num.unshift('5','6','7') --------------> count:6
5.reverse() 反转数组项的顺序 var num=['1' , '2' , '3','4','5']; num.reverse();------------------------> num: 5,4,3,2,1
6.sort() 按照升序排列数组项,它比较的是转换后的字符串。即使各项是数字也会先转换为字符串在进行比较。
从小到大排序: var values = [0, 1,15,5,10]; values.sort(compare); alert(values);------------------>0,1,5,10,15
function compare(v1,v2){ if(v1<v2){ return -1; }else if(v1 > v2){ return 1; }else{ return 0; } }
从大到小排序:var values = [0, 1,15,5,10]; values.sort(compare); alert(values);------------------>15,10,5,1,0
function compare(v1,v2){ if(v1<v2){ return 1; }else if(v1 > v2){ return -1; }else{ return 0; } }
可以简化为:
function compare(v1,v2){ return v2-v1; }
7.concat() 基于数组中的所有项创建一个新的数组,将新数组添加到数组的末尾。
var num = ['1' , '2' , '3']; var num2=num.concat('4',['5','6']); alert(num2);--------------------> 1,2,3,4,5,6
8.slice() 返回起始和结束的位置。如果参数中有负数,用数组的长度加上改数来确定它的位置。如果结束位置小于起始位置,返回空数组。
var num = ['1' , '2' , '3',‘4’,‘5’]; var num2=num.slice(1); alert(num2);------------------> '2' , '3',‘4’,‘5’
var num = ['1' , '2' , '3',‘4’,‘5’]; var num2=num.slice(1,3); alert(num2);------------------> '2' , '3',‘4’