• js 自带的 filter()方法


    1. 方法概述

       它用于把Array的某些元素过滤掉,然后返回剩下的元素组成的数组。

    2. 例子

       2.1 尝试用filter()筛选出素数:

    'use strict';
    
    function get_primes(arr) {
    
    var result = [];
    result = arr.filter(function(n){
           var flag = false;     
           if(n>1){
                flag = true;
                for(var i=2; i<n; i++){
                    if(n%i===0){
                           flag = false;
                           break;
                    }
                      
                 }
                 
            }
            return flag;
     
     });
      return result;
    }
    
    // 测试:
    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()) {
        alert('测试通过!');
    } else {
        alert('测试失败: ' + r.toString());
    }

     2.2  过滤json中无效的entries

    var arr = [
      { id: 15 },
      { id: -1 },
      { id: 0 },
      { id: 3 },
      { id: 12.2 },
      { },
      { id: null },
      { id: NaN },
      { id: 'undefined' }
    ];
    
    var invalidEntries = 0;
    
    function filterByID(obj) {
      if ('id' in obj && typeof(obj.id) === 'number' && !isNaN(obj.id)) {
        return true;
      } else {
        invalidEntries++;
        return false;
      }
    }
    
    var arrByID = arr.filter(filterByID);
    
    console.log('Filtered Array
    ', arrByID); 
    // Filtered Array
    // [{ id: 15 }, { id: -1 }, { id: 0 }, { id: 3 }, { id: 12.2 }]
    
    console.log('Number of Invalid Entries = ', invalidEntries); 
    // Number of Invalid Entries = 4
  • 相关阅读:
    golang json处理
    关于单例模式中懒汉模式和饿汉模式的学习
    关于Lambda表达式的研究
    左值和右值得研究
    关于epoll的详解说明关于epoll的详解说明
    关于c++中条件变量的分析
    关于c++种std::function和bind的用法
    关于iterator_traits的使用
    STL容器之deque数据结构解析
    STL容器之Array的用法
  • 原文地址:https://www.cnblogs.com/rocky-fang/p/5757140.html
Copyright © 2020-2023  润新知