JS数组(every、some、filter、forEach、map、reverse、sort、indexOf、lastindexOf方法)

reverse方法

JavaScript中数组的reverse()方法用于将数组倒序输出,并且改变了原数组,并且返回的也是新数组。

    var arr=["8",3,5,6,"a","s"];
    var con=arr.reverse();
    console.log(arr);  //结果为:["s","a",6,5,8,3,8]
    console.log(con); //结果为:["s","a",6,5,8,3,8]
sort方法

JavaScript中数组的sort()方法用于对数组进行排序,如果不写任何参数,sort是按照字符串排序的,也就是ascII码排序,sort方法会改变原数组,并且返回改变后的新数组。

     var arr=[1,2,10,14,21,3];
    var con=arr.sort();
    console.log(arr); //结果为:[1,10,14,2,21,3]
    console.log(con); //结果为:[1,10,14,2,21,3]

使用sort方法还可以让数组的元素按照数字的大小进行排序,此时sort方法中需要传入一个参数,并且是一个函数,函数有两个形参,a,b,其中a是数组的第二个元素,b是数组的第一个元素。

    var arr=[3,5,11,3,5,67,8,4,14];
    // sort中传递一个函数,每次函数会拿两个值进行比较
    arr.sort(function (a,b) {
        //第一次a是5  b是3
        console.log(a);
        return a-b //否则为正就是升序,也就是说如果返回值为正数则是升序
    })
indexof和lastIndexOf方法

JavaScript中数组的indexof()和lastIndexOf()方法用于检测某个值是否在数组中出现,如果没有没有则返回-1,如果有则返回第一个检测到的下标,然后停止继续检测,indexof()由数组的前向后找,lastIndexOf()由数组的后面往前找,这两个方法都不会改变原数组。
一个参数的情况:

    var arr=[1,3,5,7,6,34,23,6,6,6,3,6];
    var num1=18;
    var num2=6;
    var num1=arr.indexOf(num1); //检测这个数组中是否有18这个数
    var num2=arr.indexOf(num2); //检测这个数组中是否有6这个数
    console.log(num1);  //结果为:-1
     console.log(num2);  //结果为:4

两个参数的情况:
arr.indexOf(num1,5)中有两个参数,其中第一个参数num1则是需要检测的值,5则是检测的起始下标,,但是检测到的元素下标仍然是在原数组中的下标,不会改变。

    var arr=[1,3,5,7,6,34,23,6,6,6,3,6];
   var num1=6;
   var isHas=arr.indexOf(num1,5);
   console.log(isHas);  //结果为:7
every和some方法

JavaScript中数组的every()方法用于检测数组的元素是否全都满足定义的条件,遇到一个元素不满足则返回false,并且停止遍历,并且every返回false,也就是一假即假。
some方法和every用法类似,只是some方法中只要有一个元素满足条件则返回true,也就是一真即真。
两个方法的参数都是一个函数,函数中有三个参数,item,index,arr,参数名可以自定义,但是建议使用以上三个参数名,其中第一个参数item表示数组中的元素值,第二个参数index表示元素的下标,第三个参数arr则表示原数组。这两个方法都不会改变原数组。

    // 检测你得到的年龄是否有小于18岁,那么就进入未成年模式,否则提示进入成年模式
    // some是一真即真
    var arr=[18,18,19,18,21,23,22,25,26];
    var isPerson=arr.some(function (item,index,arr) {
        // 只要有一个返回真,则停止判断
        return item<18
    })
    if (isPerson){
        alert("未成年");
    }else{
        alert("成年");
    }
filter方法

JavaScript中数组的filter()方法用于过滤元素,如果满足条件则将该元素添加到新的数组中并返回新的数组,该方法不会改变原数组。

   var arr=[
        {name:"jiaxing",age:19},
        {name:"lipeihua",age:2},
        {name:"laozhang",age:38},
        {name:"laoliu",age:11},
        {name:"laowang",age:58},
    ]
    var newArr=arr.filter(function (item,index,arr) {
        return item.age<18;
    })
    console.log(newArr);
forEach和map方法

forEach和map这两个方法都可以用于遍历数组,在默认情况下都不会改变原数组,可根据个人的需求使用这两种方法遍历的同时改变原数组。不同的是forEach没有返回值,map方法则是有返回值的,在默认情况下,也就是没有通过return语句定义返回数值时,每遍历一个则添加一个undefined到新数组中,并返回新的数组。

    var arr=[18,18,19,18,21,23,22,25,26];
    var mapReturn=arr.map(function (item,index,arr) {
        // 对数组的每一项应用给定条件,返回新的数组
        //map的返回值是一个新数组,每次循环进来都对每一项操作,然后需要return出去,就只给给到新数组对应的值了
        return item+1;
    })
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值