ES6 数组方法:forEach() 、 map() 、filter() 、some() 、every() 、include()的用法

1.   forEach()方法

仅遍历数组,对该数组没做任何的改变。

array.forEach(function(currentValue, index, arr){})

currentValue : 数组当前项的值

index:数组当前项的索引

arr; 数组对象本身

    <script>

        var arr = [7, 4, 10];

        var sum = 0;

        arr.forEach(function(value, index, array){

         console.log('每个数组元素' + value);

         console.log('每个数组索引号' + index);

         console.log('数组本身' + array);

         sum += value;

        })

        console.log(sum);

    </script>

2.   map()方法

创建一个新数组,其结果是该数组中每个元素都调用一个提供的函数后返回的结果。不改变原数组,返回一个新数组

   <script>
       var array1 = [1, 2, 3, 4, 5];
       var y = array1.map(function(value, index){
         return value * value;
       });
       console.log(y);  // [1, 4, 9, 16, 25]
       console.log(array1);  // [1, 2, 3, 4, 5]
    </script>

3.   filter()方法

array.filter(function(currentValue, index, arr){})

Filter()方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,主要用于筛选数组,注意它直接返回一个新数组。

currentValue : 数组当前项的值

index:数组当前项的索引

arr; 数组对象本身

 <script>
        // filter 筛选数组
        var arr = [12, 66, 45, 77];
        var newArray = arr.filter(function(value, index){
           return value > 20;
        })
        console.log(newArray);
    </script>

4.   some()方法

array.some(function(currentValue, index, arr){ })

some()方法用于检测数组中的元素是否满足指定条件,查找数组中是否有满足条件的元素。

注意它返回的是布尔值,如果查找到这个元素,就返回true,如果查不到就返回false。

如果找到第一个满足条件的元素 则终止循环,不再继续查找。

currentValue : 数组当前项的值

index:数组当前项的索引

arr; 数组对象本身

    <script>
        // some 查找数组中是否有满足条件的元素
        var arr = [10, 30, 4];
        var flag = arr.some(function(value){
          return  value > 11;
        });
        console.log(flag); // true
    </script>

filter与some的区别:

filter也是查找满足条件的元素,返回的是一个数组,而且是把所有满足条件的元素返回回来。some也是查找满足条件的元素是否存在,返回的是一个布尔值如果查找到第一个满足条件的元素就终止循环

filter与forEach的区别:

如果查询数组中唯一的元素,用some方法更合适,因为找到这个元素后,就不再进行循环,效率更高。在forEach和filter里面return true不会终止迭代,在some里面return true可以终止迭代 效率更高注意some返回的是boolean类型的值,而不是数组,如果需要返回符合条件的数组,则需要先设定一个空数组,再使用push()方法来将符合条件的数据存储起来。 

 <script>
        var arr = ['red', 'green', 'blue', 'pink'];

        arr.forEach(function(value){
           if(value === 'green'){
            console.log('找到了该元素')
            return true; // 在forEach里面return不会终止迭代
           }
           console.log(11);
        })

        arr.filter(function(value){
           if(value === 'green'){
            console.log('找到了该元素')
            return true; // 在filter里面return不会终止迭代
           }
           console.log(11);
        })
 
        arr.some(function(value){
           if(value === 'green'){
            console.log('找到了该元素')
            return true; // 在some里面return可以终止迭代 效率更高
           }
           console.log(11);
        })
    </script>

 

5.   every()方法

every()是用于检测数组中的元素每一项元素是否都满足指定条件,返回的类型是布尔类型,如果该函数每一项元素都满足条件则返回true。有一项不满足则返回flase

   <script>
        // evey 查找数组中每一项元素是否都满足条件
        var arr = [10, 30, 4];
        var flag = arr.every(function(value){
          return  value > 11;
        });
        console.log(flag); // false
    </script>

 6.   includes()方法

includes方法用来判断数组是否包含一个指定的值,返回类型是布尔型,如果包含则返回 true,否则返回false

    <script>
      var arr = [1, 2, 3, 4, 5]
      var arr1 = arr.includes(4);
      var arr2 = arr.includes(6);
      console.log(arr1);  // true
      console.log(arr2); // flase
    </script>
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值