zoukankan      html  css  js  c++  java
  • [Ramda] Declaratively Map Predicates to Object Properties Using Ramda where

    Sometimes you need to filter an array of objects or perform other conditional logic based on a combination of factors. Ramda's where function gives you a concise way to declaratively map individual predicates to object properties, that when combined, cover the various facets of your conditions. In this lesson, we'll look at how this powerful function can be used for scenarios requiring a complex predicate function.

    const products = [
      {name: 'Jeans', price:80, category: 'clothes', stock: 100},
      {name: 'Hoodie', price:50, category: 'clothes', stock: 20},
      {name: 'Sneakers', price:120, category: 'clothes', stock: 30},
      {name: 'Cards', price: 35, category: 'games', stock: 10},
      {name: 'iPhone', price: 649, category: 'electronics', stock: 5},
      {name: 'Sauce Pan', price: 100, category: 'housewares', stock: 200}
      ]
    
    const predicate = R.where({
      category: R.complement(R.equals('clothes')), // category is not clothes
      stock: R.lt(R.__, 50), // less than 50
      price: R.gte(R.__, 100) // greater or equal than 100
    })
    
    const getResults = R.pipe(R.filter(predicate), R.pluck('name'))
    const result = getResults(products)
    console.log(result)
    
    document.getElementById('output').innerHTML = `${JSON.stringify(result)}`
  • 相关阅读:
    Windows Phone 的控件倾斜效果
    在framework4.0 3.5中反序列化 解析JSON
    PhpStorm2.0、3.0,5.0注册码到2112年
    Windows Phone(wp7)系统长按的秘密
    配置ethereal编译环境
    复习C++:引用的一些用法
    转载
    Stay hungry,Stay foolish
    C++:继承的一点注意事项
    纯虚函数
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5944404.html
Copyright © 2011-2022 走看看