zoukankan      html  css  js  c++  java
  • js笔记--高阶函数filter()

    filter()可以把array中的元素过滤掉,返回剩下的元素

    实现机制:和map()类似,Arrayfilter()也接收一个函数。

    map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true保留false丢弃该元素。

    练习题目:

      (1)在一个Array中,删掉偶数,只保留奇数

        答:

          var arr = [1, 2, 4, 5, 6, 9, 10, 15];
          var r = arr.filter(function (x) {
              return x % 2 !== 0;
          });
          r; // [1, 5, 9, 15]

      (2)把一个Array中的空字符串删掉

        答: 

          var arr = ['A', '', 'B', null, undefined, 'C', '  '];
          var r = arr.filter(function (s) {
              return s && s.trim(); // 注意:IE9以下的版本没有trim()方法
          });
          r; // ['A', 'B', 'C']

      (3)
    回调函数
        filter()接收的回调函数,可以有多个参数,第一个参数表示Array的某个元素,第二个参数表示元素的位置,第三个参数表示数组本身
        去除Array的重复元素:
        答:
         var r,
             arr = ['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange', 'strawberry'];

          r = arr.filter(function (element, index, self) {
          return self.indexOf(element) === index;
          });

          去除重复元素依靠的是indexOf总是返回第一个元素的位置,后续的重复元素位置与indexOf返回的位置不相等,因此被filter滤掉了。

      (4)用filter()筛选出素数

        答:

          function get_primes(arr) {
          var sushu = arr.filter( function(x){
        if(x==1){
       return false;
       }
       if(x==2){
       return true;
       }
       for(var i = 2 ; i < x ; i++){
       if(x % i === 0){
       return false;
       }
       }
       return true;
       });
       return sushu;
        }
        var x, r, arr = [];
        for (x = 1; x < 100; x++) {
        arr.push(x);
        }
        r = get_primes(arr);
        if (r.toString() === [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97].toString()) {
        console.log('测试通过!');
        } else {
        console.log('测试失败: ' + r.toString());
        }


    参考廖雪峰老师的官方网站
  • 相关阅读:
    Python3.7.1学习(六)RabbitMQ在Windows环境下的安装
    使用jmeter进行简单的压测
    python中mock的使用
    python-shutil模块
    python-常用模块之os、sys
    python-冒泡排序
    python-正则基础
    python-二维数组实现90度旋转
    python-使用递归实现二分法
    python-递归的实现
  • 原文地址:https://www.cnblogs.com/lst-315/p/11468224.html
Copyright © 2011-2022 走看看