JS中forEach()、some()、filter()、map()、every() 的区别

10 篇文章 0 订阅

forEach()、some()、filter()、map()、every() 的区别
1.forEach()
作用:遍历数组,取出数组中的每一项
参数:function(value,index,array){}
返回值:没有返回值

 var arr = [2, 4, 65, 23];
 var sum = 0;
 arr.forEach(function(value, index, array) {
      console.log('每个数组元素' + value);
      console.log('每个数组元素的索引号' + index);
      console.log('数组本身' + array);
      sum += value;
    })
     console.log(sum); // 94

2.filter()
作用:遍历数组,筛选出满足条件的项,将满足条件的项放到新数组中,并且返回
参数:function(value,index,array){}
返回值:返回存放了满足条件的项的新数组
如果发现回调函数,返回了true,就将当前的value,放到新数组中

     var arr = [12, 66, 4, 34, 2, 67];
        var newArr = arr.filter(function(value, index, array) {
            // value 数组元素
            // index 数组元素的索引
            // array 当前的数组
            return value > 20;
        });
        console.log(newArr); // [66,34,67] 返回值是一个数组

filter 是查找满足条件的元素 返回的是一个数组 而且是把所有满足条件的元素返回回来

3.some()
作用:遍历数组,判断是否有满足条件的元素,如果有返回true,如果没有返回false 查找数组唯一的元素
参数:function(value,index,array){}
返回值:返回true/false

如果发现回调函数,返回了true,就会停止遍历

  // some 查找数组中是否满足条件的元素
     var arr = [10, 30, 4];
     var flag = arr.some(function(value, index, array) {
            // value 数组元素
            // index 数组元素的索引
            // array 当前的数组
            return value < 15;
        });
     console.log(flag); // true 返回的是布尔值,只要查找到满足条件的一个元素就立马终止循环

    var arr1 = ['red', 'pink', 'blue'];
    var flag1 = arr1.some(function(value) {
            return value == 'pink';
        });
   console.log(flag1); // true

some 查找满足条件的元素是否存在 返回的是一个布尔值 如果查找到第一个满足条件的元素就终止循环

4.map()
map()生成一个新数组 其结果是该数组每一个元素 调用指定函数的 返回值

    var arr = [1,2,3];
    var newArr = arr.map(function(value) {
            return value < 2;
    });
    console.log(newArr); //  [true, false, false]

5.every()
every() 用来检测该数组中每一个元素 是否都满足指定函数的条件,返回的是 布尔值 如果给定是一个空数组,则返回true

  var arr1 = [22, 45, 3, 5, 24];
 // var arr2 = [];
  var newArr1 = arr1.every(function(value) {
  return value > 20;
});
  console.log(newArr1); // false
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白媛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值