• [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)}`
  • 相关阅读:
    ubuntu中安装monodevelop
    谈谈asp.net中的<% %>,<%= %>,<%# %><%$ %>的使用
    asp.net中的App_GlobalResources和App_LocalResources使用
    cisco通过控制口或者通过远程配置交换机
    匿名函数
    迭代器生成器
    闭包函数,装饰器
    函数之对象和名称空间与作用域
    函数
    文件操作
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5944404.html
Copyright © 2020-2023  润新知