Ramda如何过滤某些键包含的对象数组

时间:2018-06-10 07:53:20

标签: javascript ramda.js

如果其中一个键包含so string,我想过滤一个对象数组。 鉴于数据:

const data = [
    {id: 1, value: 'abs', x: 'ee'}
    {id: 2, value: 'ws', x: '21'},
    {id: 3, value: 'asd', x: 'as'},        
    {id: 4, value: 'x', x: 'ee'},
]

如果某个值包含给定的输入,我希望能够使用sting或数字来过滤此数组 如果我得到w我希望能够只得到第二个元素 如果我得到a我希望能够获得第一个和第三个元素,依此类推。

提前谢谢

1 个答案:

答案 0 :(得分:1)

你可以这样做:



const data = [
  {id: 1, value: 'abs', x: 'ee'},
  {id: 2, value: 'ws', x: '21'},
  {id: 3, value: 'asd', x: 'as'},        
  {id: 4, value: 'x', x: 'ee'}
]

const customFilter = val => R.filter(R.compose(R.any(R.contains(val)),R.values))

console.log(customFilter('a')(data))

<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.25.0/ramda.min.js"></script>
&#13;
&#13;
&#13;