JS ecma5新增数组方法:indexOf()、forEach()、reduce()、filter()、some()、every()

indexOf()

本来是字符串中字符查找方法,但该方法也是数组的查找元素方法
【格式】数组.indexOf(元素,index);
【参数】元素:要查找的元素;
              index:开始查找的位置的下标;
【功能】查找
【返回值】如果在字符串中查找到了子串第一次出现的位置,返回子串出现的位置,否则没有查找到返回-1;
【注】使用的方式和字符串的方式一致;

    var arr = [10,20,30,40,50,60];
    var temp = arr.indexOf(50);//默认从下标为0开始
    document.write(temp + "
"); //4 var temp1 = arr.indexOf(50,2);//从下标为3开始查找,还是返回查找元素在数组中的下标 document.write(temp1); //4 var temp2 = arr.indexOf(50,7);//从下标为7开始查找,没有找到返回-1; document.write(temp2); //-1

forEach()

【原理】将原始数组遍历,并对每一个元素,直接或调用函数处理,将处理完的数据生成一个姓的数组返回;
【格式】

       array.map(function(item, index, arr){

       })

【参数】item:当前遍历的元素;
              index:当前遍历的下标;
              array:当前数组
【返回值】返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
【注】1、不会改变原始数组;
            2、不会对空数组进行检测;

   var arr = [10,20,30,40];
   var newArr = arr.map(function(item,index,array){
       return item+2;
   });
   document.write(newArr);//12,22,32,42

reduce()

推荐讲解:https://www.jianshu.com/p/e375ba1cfc47

filter()

【功能】创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
【返回值】一个新数组,其中元素为通过检查指定数组中符合条件的所有元素。
【注】1、不会对空数组进行检测。
            2、不会改变原始数组。

var arr = [10,20,30,40,50,60,70,80];
var temp = arr.filter(function(item,index,array){
    return item > 50;
})
document.write(temp);//60,70,80

some()

【功能】判断return后面的条件是否成立,如果成立返回true,否则返回false;
【注】如果匹配成功,则返回true,后面不再进行遍历;

var arr = [10,20,30,40,50,60,70,80];
var res = arr.some(function(item,index,array){
   return item >70;//判断数组中是否存在大于70
})
alert(res);//true

every()

【功能】跟some一样,但是要求每一项都符合,才返回true,如果不符合返回false;
【注】如果判断有元素不符合调节,则直接终止循环;

var arr = [10,20,30,40,50,60,70,80];
var res = arr.every(function(item,index,array){
           return item >70;//判断数组中每一个元素是否都大于70;
})
alert(res);//false
var res1 = arr.every(function(item,index,array){
           return item >7;//判断数组中每一个元素是否都大于7;
})
alert(res1);//true

你可能感兴趣的:(JS ecma5新增数组方法:indexOf()、forEach()、reduce()、filter()、some()、every())