js数组

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)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值