find、filter、map的区别

1、

  find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。

      find() 方法为数组中的每个元素都调用一次函数执行:

  •  当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
  •  如果没有符合条件的元素返回 undefined

     注意: find() 对于空数组,函数是不会执行的。

     注意: find() 并没有改变数组的原始值。

    例如: 获取数组中年龄大于 18 的第一个元素

        var ages = [3, 10, 18, 20];

        function checkAdult(age) {

            return age >= 18;

        }

       function myFunction() {

           document.getElementById("demo").innerHTML = ages.find(checkAdult);

       }

     结果: 18

2.

  filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

  注意: filter() 不会对空数组进行检测。

  注意: filter() 不会改变原始数组。

    例如: 返回数组 ages 中所有元素都大于 18 的元素

  var ages = [10, 20, 16, 36];

  function checkAdult(age) {
    return age >= 18;
  }

  function myFunction() {
    document.getElementById("demo").innerHTML = ages.filter(checkAdult);
  }

     结果:20,36

3.  

  map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

  map() 方法按照原始数组元素顺序依次处理元素。

  注意: map() 不会对空数组进行检测。

  注意: map() 不会改变原始数组。

      例如: 返回一个数组,数组中元素为原始数组的平方根

  var numbers = [4, 9, 16, 25];

  function myFunction() {
      x = document.getElementById("demo")
      x.innerHTML = numbers.map(Math.sqrt);
  }

      结果:2,3,4,5

 

posted @ 2021-08-10 15:28  IsZ_Y  阅读(236)  评论(0编辑  收藏  举报