今天来说下js中数组的方法

方便查看的数组方法

文章目录

  • 前言
  • 一、可以遍历数组的方法
  • 二、断言函数
  • 三、数组的其他方法
  • 总结


前言

今天来说下数组常用的方法!


一、可以遍历数组的方法

 1.forEach(function(元素,索引,表示当前在遍历数组){  }) 遍历  遍历数组中的元素,没有返回值

var arr = ["a", "b", "c", "d", "e"];
      var res2 = arr.forEach(function (v, k) {
        // console.log(v, k);//元素 索引
        console.log(arr);// ['a', 'b', 'c', 'd', 'e']
      });
      console.log(res2);//undefined

2.map(function(元素,[索引,表示当前在遍历数组]){}) 遍历数组返回一个新的数组,新数组中元素是原来数组中元素处理之后的结果.

var arr = ["a", "b", "c", "d", "e"];
var res3 = arr.map(function (v, k, arr) {
            console.log(v);//遍历出的每一个元素
            console.log(k);//元素对应的下标
            console.log(arr);//遍历的数组
      });

 

//例:将arr3 = [4,5,6,7,8]乘以1.3后返回
      var arr3 = [4, 5, 6, 7, 8];
      var res5 = arr3.map(function (v) {
        return v * 1.3; // [5.2, 6.5, 7.800000000000001, 9.1, 10.4]
      });
      console.log(res5);

 

3.filter(function(元素,[索引]){}) 当return后面bool值为true的时候,返回当前元素,没有返回条件的就是空数组..

var arr2 = [4, 5, 6, 7, 8];
      var res4 = arr2.filter(function (v, k) {
        //返回值元素大于5的元素,结果是bool值true,返回当前元素
        return v > 5;// [6, 7, 8]
        //返回值元素大于15的元素
        return v > 15;//[]  没有返回条件的就是空数组..
      });
      console.log(res4);

filter();第二个用法:把一个Array中的空字符串删掉

var arr = ["A", "", "B", null, undefined, "C", "  ","B"];

      var r = arr.filter(function (s) {
        return s && s.trim(); // 注意:IE9以下的版本没有trim()方法
      });

      console.log(r);// ['A', 'B', 'C', 'B']

4.reduce(function(total,v){},初始值)  total 总计(每次累加的和)  v 正在循环的元素 

// 累加数组的元素,放在一起返回
        var ages1 = [3, 20, 10, 18];
        //相加的总和
        var res4 = ages1.reduce(function(total, v){
            console.log(total, v);//会出现undefined是因为初始值是0,后面没赋值的原因
            return total + v ;//51
        },0)
        console.log(res4);

reduce() ;第二个用法:字符串加连字符'-'

     //字符串加连字符'-'
        var book = ['星期一', '星期二', '星期三', '星期四'];
        var res5 = book.reduce(function(t ,v){//t:指的的就是total 可以随意写,v:指的是元素
             return t + v +'-'//星期一-星期二-星期三-星期四-
        },'')
        console.log(res5);

 5.every(function(v,k){}) 每一个元素都满足条件返回true,有一个不满足的则返回false

var ages = [3, 20, 10, 18];
    var res3 = ages.every(function(v ,k){
        //都大于3
        return v > 3;//false

        //都大于1
        return v >1;//true
    })
    console.log(res3);

6.some(function(v,k){})  有一个满足条件的就返回true,都不满足条件返回false

var ages = [3, 20, 10, 18];
    // 寻找ages中大于18,和180的
    var res2 = ages.some(function(v, k){
        //大于18
        return v > 18;//true

        //大于180
        return v >180;//false
    })
    console.log(res2);

 

二、断言函数

find() findIndex()   断言函数,找到目标则停止循环

1.find(function(v,k){})  返回符合条件的元素,如果没有满足条件的则返回undefined.

    var ages = [3, 20, 10, 18];
      var res = ages.find(function(v, k ){
         //v是元素,k是下标
         //console.log(v, k);

        //返回大于等于10的元素
        return v >=10//20

        //返回大于等于100的元素,没有返回undefined
        return v >=100//undefined
        
      })
      console.log(res);

2.findIndex(function(v,k){})  返回符合条件元素的下标,没有返回-1

    // 返回符合条件元素的下标
      var ages = [3, 20, 10, 18];
      var res1 = ages.findIndex(function(v, k){
        //返回大于10的元素下标
         return v >10;//1
        //返回大于100的元素下标,没有返回-1
         return v > 100;//-1
      })
      console.log(res1);

三、数组的其他方法

1.indexOf(item[,start])里面中括号表示可写可不写   查找目标元素是否存在于数组中,存在返回下标,不存在返回 -1

     var arr = ["a", "b", "c", "d", "e"];
    //从数组 arr 找出b的位置 .
      var res = arr.indexOf("b"); //1 返回的是他的索引(下标)
       console.log(res);

      //从数组 arr 找出f的位置 .
      var res1 = arr.indexOf("f");
       console.log(res1);//-1  不存在是-1

2. lastIndexOf()最后一次出现的位置 返回的是下标索引

    var arr = [11, 22, 33, 44, 55, 66, 11,66];
    var res6 = arr.lastIndexOf(66);//7  返回下标
    console.log(res6);

3.includes()  是否包含某个元素,是返回true,不是返回false

    var arr = [11, 22, 33, 44, 55, 66, 11,66];
   //数组中是否存在11,存在返回true
    var res7 = arr.includes(11);//true

   //数组中是否存在20,不存在返回false
    var res8 = arr.includes(20);//false
     console.log(res7);
     console.log(res8);

 


总结

以上是我对于数组方法的总结,初来乍到,请多多指教~
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值