码迷,mamicode.com
首页 > 其他好文 > 详细

[Ramda] Declaratively Map Predicates to Object Properties Using Ramda where

时间:2016-10-10 02:01:34      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

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)}`

 

[Ramda] Declaratively Map Predicates to Object Properties Using Ramda where

标签:

原文地址:http://www.cnblogs.com/Answer1215/p/5944404.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!