zoukankan      html  css  js  c++  java
  • [Ramda] Filter an Array Based on Multiple Predicates with Ramda's allPass Function

    In this lesson, we'll filter a list of objects based on multiple conditions and we'll use Ramda's allPass function to create a joint predicate from multiple, individual predicate functions.

    const R = require('ramda');
    
    const { allPass, propEq, lte, propSatisfies, filter } = R;
    
    const cars = [
        {
            name: 'suv',
            doors: 4,
            mpg: 19
        },
        {
            name: 'sedan',
            doors: 4,
            mpg: 30
        },
        {
            name: 'hybrid',
            doors: 4,
            mpg: 37
        },
        {
            name: 'compact',
            doors: 2,
            mpg: 32
        }
    ];
    
    const mpgLte30 = propSatisfies(lte(R.__, 30), 'mpg');
    const fourDoors = propEq('doors', 4);
    const preds = allPass([
                              mpgLte30,
                              fourDoors
                          ]);
    const result = filter(preds)(cars);
    console.log(result);
  • 相关阅读:
    遥远的国度(D12 树链剖分)
    Codechef DGCD Dynamic GCD(D12 树上GCD)
    html总结
    数据库大总结
    html笔记
    Linux常用快捷键
    进程
    多进程
    进程介绍
    网络并发
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6528747.html
Copyright © 2011-2022 走看看