js数组

来源:互联网 发布:java变量的命名规则 编辑:程序博客网 时间:2024/05/23 12:53

javascript数组

javascript数组有两种声明方法一种为:构造器声明 var array = new Array();(不推荐),另一种是直接声明 var array = [];

javascript数组可以进行许多操作,可变性很强。

  1. 更新或增加元素,我们可以使用索引来更新和增加数组中的元素,如果索引值小于数组长度,进行更新,如果索引值大于数组长度进行增加,如果索引与数组长度的差值大于1,则间隔部分元素自动设定为undefined。
  2. 数组相关的方法:

    • 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)
0 0
原创粉丝点击