ES5新增数组的方法

ES5新增数组的方法

ES5新增数组常见方法(indexOf/forEach/map/filter/some/every)

  • .indexOf( data , start)
      检测数组中是否存在指定数据,存在返回索引,不存在返回-1,start表示从第几位开始查询。
demo:
    var arr = ["a","45",67,true,"hello",67,45,25,13,89];
    
    console.log(arr.indexOf(67));           // 2
    console.log(arr.indexOf("world"));      // -1
    console.log(arr.indexOf("a"));          // 0
    console.log(arr.indexOf(67,3));         // 5
    console.log(arr.indexOf(67,6));         // -1

 

  • .forEach( function(val,idx,self){ } ); 循环,遍历数组
      数组的专属遍历方法,1个参数:回调函数,在回调函数身上又有三个参数
var f = arr.forEach(function(val,idx,self){
    // console.log(val);
    // console.log(idx);
})
console.log(f);         // undefined

 

  • .map( function(val,idx,self){ } );
      不是专门用来遍历的,但是可以实现遍历,格式同forEach
      map的主要功能:可以用来获取数组中的数据,操作,并返回成新数组;原数组不变
demo:
    "函数中的三个参数分别代表,该项的值,该项下标,数组本身"
    var m = arr.map(function(val,idx,self){
        console.log(val,idx,self)
        return val + "ly";
    })
    console.log(arr);       // Array(10) [ "a", "45", 67, true, "hello", 67, 45, 25, 13, 89 ]
    console.log(m);         // Array(10) [ "aly", "45ly", "67ly", "truely", "helloly", "67ly", "45ly", "25ly", "13ly", "89ly" ]

 

  • .filter( function(val,idx,self){ } )
      不是专门用来遍历的,但是可以实现遍历,格式同forEach
      主要功能:过滤,回调函数每次返回值为true时,会将这个遍历到的值放在新的数组中,在filter结束后,返回这个数组;如果为false,跳过;原数组保持不变
demo:
  var f = arr.filter(function(val,idx,self){   console.log(val,idx,self)   return typeof val === "string";   })   console.log(f); // Array(3) [ "a", "45", "hello" ]

 

  • .some( function(val,idx,self){ } ) (课外补充)
      some意指“某些”,指是否“某些项”合乎条件。与下面的every算是好基友
      some存在一个值让callback返回true就可以了
demo1:
    // 效果是我们判定这个数组是否有一个负数 使用.some
    var arr = [1,58,125,-12,458,12];
    var Boon = arr.some(function(e,i,arr){
      return e < 0;
    })
    console.log(Boon)      // ture
    
    var scores = [5, 8, 3, 10];
    var current = 7;
    
demo2:
    function fn(score) {
        return score > current;
    }
    
    if (scores.some(fn)) {
        console.log("通过了!");        // "通过了!
    }

 

  • .every( function(val,idx,self){ } )
      所有函数的每个回调函数返回true的时候才会返回true,遇到一个false的时候终止执行,返回false
demo1:
    // 效果是我们判定这个数组全是正数 使用.every
    var arr = [1,58,125,-12,458,12];
    var Boon = arr.every(function(e,i,arr){
      return e > 0;
    })
    console.log(Boon)      //false

demo2:
    var scores = [5, 8, 3, 10];
    var current = 7;
    function fn(score) {
        return score > current;
    }
    if (scores.every(fn)) {
        console.log("通过了!");
    }else{
        console.log("没通过");          // "没通过"
    } 

 

上一篇:【JS】ES5数据类型-基本数据类型-引用数据类型-类型之间的转换-数据类型的判断


下一篇:将async/await编译到 ES3/ES5 (外部帮助库)