forEach、map,filter,some方法的区别

一、数组相关的方法

(1):遍历forEach()方法

forEach(function(v,i,arr){})
1:forEach方法里面的参数为回调函数:
2:回调函数内部有着三个参数,第一个为要遍历的值,第二个为索引号,第三个为原数组
3:作用:
作用1:用于遍历数组
结果:最后返回的是原数组
需求:给ul下面的li 点击li添加背景色,其他兄弟去掉底色

  <ul>
    <li class="active">1</li>
    <li>2</li>
    <li>3</li>
  </ul>

    let lis = document.querySelectorAll("ul li");
    lis.forEach(function (v, i, arr) {
      lis[i].addEventListener("click", function () {
        lis.forEach(function (v, i) {
          lis[i].className = ""
        })
        this.className = "active";
      })
    })

(2):遍历map()方法

map(function(v,i,arr){})
1:map方法里面的参数为回调函数:
2:回调函数内部有着三个参数,第一个为要遍历的值,第二个为索引号,第三个为原数组
3:作用:
作用1:用于遍历数组,对元数组中的元素进行修改,修改后经过回调函数处理,把返回值当做元素放入新数组中
结果:最后返回的是新数组
需求:让数组元素都 *2 输出型数组

    let arr = ["1", "2", "3"];
    let newArr = arr.map(function (v, i, arr) {
      return v * 2;
    })
    console.log(newArr); //["2","4","6"]

forEach()和map()方法的区别

1:forEach方法遍历数组,返回的是原数组
2:map方法遍历数组,返回的是新数组,就是针对原数组中的元素进行操作处理后,回调函数的返回值作为元素放入新数组中。

(3):遍历filter()方法

filter(function(v,i,arr){})
1:filter方法里面的参数为回调函数:
2:回调函数内部有着三个参数,第一个为要遍历的值,第二个为索引号,第三个为原数组
3:作用:
作用1:用于遍历数组,刷选出符合的条件的元素,放入新数组中
结果:最后返回的是新数组
需求:过滤掉工资低于3000的工资(不包含3000)

    let arr = ["2000", "3000", "5000", "900"];
    let newArr = arr.filter(function (v, i, arr) {
      return v >= 3000;
    })
    console.log(newArr); //["3000","5000"]

(4):遍历some()方法

some(function(v,i,arr){})
1:some方法里面的参数为回调函数:
2:回调函数内部有着三个参数,第一个为要遍历的值,第二个为索引号,第三个为原数组
3:作用:
作用1:用于遍历数组,根据筛选的条件,若是符合条件,则返回值为true
结果:最后返回的是布尔值
注意:假如你根据数组查询到商品的时候,由于some方法返回的布尔值,因此需要在外面定义一个空数组,用于接收数据(需要在return前面接收)
// 注意点:找到第一个元素的时候,直接终止循环
需求:查询数组中是否含有该元素

    let arr = ["1", "3", "5"];
    let flag = arr.some(function (v, i, arr) {
      return v == 3;
    })
    console.log(flag); //true

filter()和some()方法的区别

1:filter方法遍历数组,根据条件筛选出元素,然后放入到新数组中,返回的是新数组
2:some方法遍历数组,根据条件遍历原数组中的元素,符合条件的则返回的true,没错返回的是布尔值。值得注意的是,some方法效率更高,因为它一找到符合条件的,直接结束循环。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值