根据条件使用Ramda过滤对象

问题描述 投票:0回答:2

我想使用Ramda>]过滤出以下数据。所需的结果是显示usage === 'Defining'的属性。

const data = 
[{
  "attributes":
  [
    {"usage": "Descriptive"},
    {"usage": "Defining"}
  ]
}]

到目前为止,这是我所做的,并且没有筛选出数据并返回整个对象。

R.filter(
 R.compose(
     R.any(R.propEq('usage', 'Defining')),
     R.prop('attributes')
  )
)(data)

以下是我要达到的理想结果:

[{
  "attributes":
  [
    {"usage": "Defining"}
  ]
}]
    

我想使用Ramda过滤掉以下数据。期望的结果是显示用法==='定义'的属性。 const data = [{“属性”:[{“用法”:“描述性”},{“用法”:“ ...

javascript reactjs typescript react-native ramda.js
2个回答
0
投票

您正在尝试在这里同时做一个地图和一个过滤器,因此值得为每个函数分别设置功能,然后将它们组合在一起以获得所需的内容:


0
投票

如果我正确理解了您想做什么,那么当您要基于属性进行过滤时,where非常有用。但是您想将其与where结合使用。尽管Ramda不提供map,但是编写我们自己的很容易。我们创建一个函数,该函数接受一个过滤函数和一个映射函数,并返回一个函数,该函数接受一个数组并仅映射那些通过过滤器的结果。以这种方式解决问题,我们可以写类似的东西:

© www.soinside.com 2019 - 2024. All rights reserved.