javascript数组
javascript数组有两种声明方法一种为:构造器声明 var array = new Array();
(不推荐),另一种是直接声明 var array = [];
javascript数组可以进行许多操作,可变性很强。
- 更新或增加元素,我们可以使用索引来更新和增加数组中的元素,如果索引值小于数组长度,进行更新,如果索引值大于数组长度进行增加,如果索引与数组长度的差值大于1,则间隔部分元素自动设定为undefined。
数组相关的方法:
- push() 在数组末尾添加任意个元素,返回数组长度。
- pop()从数组末尾删除一个元素,从数组末尾删除一个元素,返回删除的元素
- shift()从数组最前面删除一个元素,返回删除的元素
- unshift()在数组前面插入任意个元素。返回数组长度。
- splice(index,num,arguments)第一个参数为想要删除或插入元素的索引,第二个参数是删除元素的个数,第三个参数外后,就是要添加到数组里的值。返回删除的元素组成的数组。
- slice(startindex,endindex)将数组里对应索引返回内的元素作为新数组返回。原数组不变。
- concat()连接数组,两个或多个根据传入参数,参数为数组。
- every()对数组的每一项运行给定的函数,如果该函数对每一项都返回true,则返回true。
- filter()对数组中的每一项运行给定的函数,返回该函数会返回true的项组成的数组。
- forEach()对数组的每一项运行给定的函数,无返回值。不能用于修改数组。
- join()将所用数组元素连接成一个字符串,参数为元素之间的连接字符串。
- indexOf()返回第一个与参数相等的数组元素的索引,没有找到则返回-1。
- lastIndexOf()返回在数组中搜索到的与给定参数的相等的元素的索引里最大的值,也就是返回最后一个出现的索引位置。
- map()对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
- reverse()对数组元素执行反转。也就是第一个变成最后一个,最后一个变成第一个。
- some()对数组中每一项运行给定函数,如果任一项返回true,则返回true。
- sort()按照字母顺序对数组进行排序,支持传入指定的排序方法的函数作为参数。
- toString()将数组作为字符串返回。数组项之间,用逗号分隔。
- valueOf()和toString()类似,将数组作为字符串返回。
相应的用法:
var array1 = [1,2,4];
array1.push(1);//[1,2,4,1];
array1.push(5,6);//[1,2,4,1,5,6];
array1.pop();//[1,2,4,1,5]
array1.shift();//[2,4,1,5]
array1.unshift(1);//[1,2,4,1,5]
array1.splice(1,2,3);//[1,3,1,5];
array1.splice(2,1);//[1,3,5]
var temp_array = array1.slice(1,2);//temp_array =[3,5]
array1.concat(temp_array);[1,3,5,3,5];数组的排序方法详解:
javascript数组默认排序方式为依据ASCII码表的先后顺序进行排序,有些时候我们不需要这种排序就可以自定义排序规则。如果数组中全部为数字,排序方法可这样写 numbers.sort(function(a,b){ return a-b; });//这样写会进行升序排序。 //完整方法为 numbers.sort(function(a,b){ if(a<b){ return -1; } if(a b){ return 1; } return 0; });//如果第一个参数小于第二个参数,且返回-1,则会进行升序排列。 //自定义对象排序: var friends = [{name:'john',age:30},{name:'Ana',age:20},{name:'Chris',age:25}]; friends.sort(function(a,b){ if(a.age < b.age){ return -1; } if(a.age > b.age) { return 1; } return 0; });//结果:Ana(20),chris(25),john(30)